Rails 具有单一控制器名称的路径助手
Rails path helper with singular controller names
首先警告:我是 Rails 上 Ruby 的新手。我正在创建一个应用程序,并且 运行 当实体具有相同的复数和单数名称时创建控制器的问题。在我的例子中它是 "fish",所以我有一个 Fish
模型,一个 FishController
,一个 fish
table 等。它工作得很好(令人惊讶的是,至少对我来说),除非我尝试使用路径助手:
<%= link_to 'My fishes', fish_path %>
当我尝试这样做时,rails 显示错误
No route matches {:action=>"show", :controller=>"fish"} missing required keys: [:id]
我知道当你有资源 :apples
时,apples_path
会引用索引,apple_path(:id)
(没有 s)会引用特定的 show
方法物品。我对正在发生的事情的猜测是,当我说 fish_controller
时,我指的是 show
方法,因此错误:它缺少一个 ID。
我的问题是,如何调用"plural"fish_path
去index
?
还有一个预防性问题:你知道我能找到与此 "weirdness" 相关的任何其他问题吗?
fish#index
的名字是 fish_index
fish#show
的名字是 fish
所以你应该使用:
<%= link_to 'My fishes', fish_index_path %>
和link鱼的个人资料:
<%= link_to 'Biggest Fish', fish_path(@fish) %>
首先警告:我是 Rails 上 Ruby 的新手。我正在创建一个应用程序,并且 运行 当实体具有相同的复数和单数名称时创建控制器的问题。在我的例子中它是 "fish",所以我有一个 Fish
模型,一个 FishController
,一个 fish
table 等。它工作得很好(令人惊讶的是,至少对我来说),除非我尝试使用路径助手:
<%= link_to 'My fishes', fish_path %>
当我尝试这样做时,rails 显示错误
No route matches {:action=>"show", :controller=>"fish"} missing required keys: [:id]
我知道当你有资源 :apples
时,apples_path
会引用索引,apple_path(:id)
(没有 s)会引用特定的 show
方法物品。我对正在发生的事情的猜测是,当我说 fish_controller
时,我指的是 show
方法,因此错误:它缺少一个 ID。
我的问题是,如何调用"plural"fish_path
去index
?
还有一个预防性问题:你知道我能找到与此 "weirdness" 相关的任何其他问题吗?
fish#index
的名字是fish_index
fish#show
的名字是fish
所以你应该使用:
<%= link_to 'My fishes', fish_index_path %>
和link鱼的个人资料:
<%= link_to 'Biggest Fish', fish_path(@fish) %>