Rails:获取嵌套资源的"新"路径

nul*_*ull 7 url ruby-on-rails-3

我有一个嵌套资源,在我的路线中看起来像这样:

resource :reviews do
  resource :entries
end
Run Code Online (Sandbox Code Playgroud)

我正在尝试为新的输入路径创建一个链接,如下所示:

<%= link_to "New Entry", new_review_entry_path(@review) %>
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不断收到此错误消息:

undefined method `new_review_entry_path' for #<#<Class:0x5150d78>:0x483c798>
Run Code Online (Sandbox Code Playgroud)

我检查了rake路线,事实证明路线应该多元化为:

new_reviews_entries_path(@review)
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我这样做时,我得到一个奇怪的网址:

/reviews/entries/new.1
Run Code Online (Sandbox Code Playgroud)

显然,这也行不通.知道这里发生了什么吗?

Rob*_*bin 7

resources,不是resource.你的第一次尝试是正确的;)

resources :reviews do
    resources :entries
end
Run Code Online (Sandbox Code Playgroud)

您应该resource在资源"唯一"时使用.例如,如果用户有一个配置文件,您可以执行以下操作:

resources :users do
    resource :profile
end
Run Code Online (Sandbox Code Playgroud)