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_pathindex

还有一个预防性问题:你知道我能找到与此 "weirdness" 相关的任何其他问题吗?

  • fish#index 的名字是 fish_index
  • fish#show 的名字是 fish

所以你应该使用:

<%= link_to 'My fishes', fish_index_path %>

和link鱼的个人资料:

<%= link_to 'Biggest Fish', fish_path(@fish) %>