首先警告:我是Ruby on Rails的新手。我正在创建一个应用程序,并在实体具有复数和单数的同名时遇到创建控制器的问题。在我的情况下它是" fish",所以我有一个Fish
模型,一个FishController
,一个fish
表等。它工作得很好(令人惊讶的是,至少对我来说,除非我尝试使用路径助手:
<%= 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。
我的问题是,如何调用&#34;复数&#34; fish_path
转到index
?
一个预防性问题:你知道我能找到的与此相关的任何其他问题&#34;怪异&#34;用名字?
答案 0 :(得分:2)
fish#index
的名称为fish_index
fish#show
的名称为fish
所以你应该使用:
<%= link_to 'My fishes', fish_index_path %>
将鱼的个人资料链接到:
<%= link_to 'Biggest Fish', fish_path(@fish) %>