Маршруты не выглядят правильно. Отсутствует идентификатор и индекс

В приложении Rails 4.1 я создал набор маршрутов, чтобы избежать серьезных вложений в этом типе отношений:

User has_and_belongs_to_many :blogs, join_table: 'blogs_users'
User has_many :posts, through: :blogs

Blogs has_and_belongs_to_many :users, join_table: 'blogs_users'
Blogs has_many :posts

Posts has_and_belongs_to_many :tags, join_table: 'tags_posts'
Posts has_and_belongs_to_many :categories, join_table: 'categories_posts'
Posts has_many :comments
Posts belongs_to :user
Posts belongs_to :blogs

Comments belongs_to :posts

Это довольно просто, как бы роты ни выглядели так (мне посоветовали, так было проще):

  namespace :api do
    namespace :v1 do

      resource :users, only: [:index, :show] do
        resource :blogs, only: [:index, :show]
      end

      resource :blogs, only: [:index, :show] do
        resource :posts, only: [:index, :show]
      end

      resource :posts, only: [:index, :show] do
        resource :tags
        resource :comments
        resource :categories
      end

    end
  end

rake routes команда выплевывает:

             Prefix Verb   URI Pattern                             Controller#Action
  api_v1_users_blogs GET    /api/v1/users/blogs(.:format)           api/v1/blogs#show
        api_v1_users GET    /api/v1/users(.:format)                 api/v1/users#show
  api_v1_blogs_posts GET    /api/v1/blogs/posts(.:format)           api/v1/posts#show
        api_v1_blogs GET    /api/v1/blogs(.:format)                 api/v1/blogs#show
   api_v1_posts_tags POST   /api/v1/posts/tags(.:format)            api/v1/tags#create

# This is just a few to keep the post clean and manageable. I can gist the whole output if you require it.

Как видите, я скучаю id а также index Я уверен, что моя ошибка является чем-то рудиментарным. Как бы я ни терялся в отношении того, что...

Я также обеспокоен тем, как пользователь, получающий доступ к API, будет создавать сообщения, поскольку я выполняю только аутентификацию по API-ключу. Я имею в виду, я полагаю, что я мог бы создать "current_user", основанный на том, чтобы использовать его для передачи идентификатора пользователя постам, когда он создается.

Мои вопросы:

  • Где мой идентификатор и индекс?
  • Является ли мой уровень вложенности (в маршрутах) для показанных типов отношений подходящим?

1 ответ

Вы должны заменить resource с resources,

Множественное число имеет большое значение: их может быть много, отсюда необходимость идентификаторов, наличие индекса и т. Д.

Смотрите документацию

Другие вопросы по тегам