Маршруты не выглядят правильно. Отсутствует идентификатор и индекс
В приложении 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
,
Множественное число имеет большое значение: их может быть много, отсюда необходимость идентификаторов, наличие индекса и т. Д.