3

首先是一个警告:我是 Ruby on Rails 的新手。当实体在复数和单数中具有相同的名称时,我正在创建一个应用程序并遇到创建控制器的问题。就我而言,它是“鱼”,所以我有一个Fish模型、一个FishController、一个fish表等。它工作得很好(令人惊讶的是,至少对我来说),除非我尝试使用路径助手:

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

当我尝试这样做时,rails 向我显示一个错误

No route matches {:action=>"show", :controller=>"fish"} missing required keys: [:id]

我知道当你有一个资源时:applesapples_path会引用索引和apple_path(:id)(不带 s)到show特定项目的方法。我对正在发生的事情的猜测是,当我说fish_controller我指的是该show方法时,因此会出现错误:它缺少一个 ID。

我的问题是,我如何称呼“复数”fish_pathindex

还有一个预防性问题:你知道我能找到与这个名字的“怪异”相关的任何其他问题吗?

4

1 回答 1

3
  • 名字fish#indexfish_index
  • 名字fish#showfish

所以你应该使用:

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

并将鱼的个人资料链接到:

<%= link_to 'Biggest Fish', fish_path(@fish) %>
于 2015-09-29T18:20:08.033 回答