我有一个嵌套资源,在我的路线中显示如下:
resource :reviews do
resource :entries
end
我正在尝试为新的输入路径创建链接,如下所示:
<%= link_to "New Entry", new_review_entry_path(@review) %>
不幸的是,我不断收到此错误消息:
undefined method `new_review_entry_path' for #<#<Class:0x5150d78>:0x483c798>
我检查了rake路线,结果发现该路线应该多元化为:
new_reviews_entries_path(@review)
不幸的是,当我这样做时,我会得到一个奇怪的网址:
/reviews/entries/new.1
显然,这也行不通。知道这里发生了什么吗?
答案 0 :(得分:7)
它是resources
,而不是resource
。你的第一次尝试是正确的;)
resources :reviews do
resources :entries
end
当资源“唯一”时,您应该使用resource
。例如,如果用户有一个配置文件,您可以执行以下操作:
resources :users do
resource :profile
end