Я могу понять, почему Крэйг пропустил это на самом деле.Это такая тонкая разница, что даже не приходила мне в голову.Единственное, что меня поразило, это то, что мои именованные маршруты для синглтон-ресурса имеют странное индексное имя: user_foo_index
вместо user_foos
.
Это действительно умный вывод из-за отсутствия множественного числа со стороныof Rails.
Предупреждение: В следующих примерах поверхностное вложение выполняется следующим образом:
resources :cats, shallow: true do
resources :noms
end
Или что:
resources :cats do
shallow do
resources :noms
end
end
В любом случае, вернемся к делу, если вы настроите особый ресурс - например, address
вместо articles
- и вы увидите что-то вроде этого:
user_address_index GET | POST
new_user_address GET
edit_address GET
address GET | PUT | DELETE
Тогда, как справедливо указал АндреасВы, вероятно, неправильно объявили это в своих маршрутах:
resources :users do
resources :address
end
И если вы измените это на:
resources :users do
resource :address
end
У вас все должно быть в порядке, и вы увидите что-то подобное, если выpunch rake routes
в вашем приглашении:
user_address POST | GET | PUT | DELETE
new_user_address GET
edit_user_address GET
Примечание: я знаю, что вывод маршрутов граблей не выглядит точно так (это намного более многословно), я просто упрощаю радифокус.
Надеюсь, что помогает.