带有奇异控制器名称的Rails路径助手

时间:2015-09-29 18:16:12

标签: ruby-on-rails ruby pluralize

首先警告:我是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;用名字?

1 个答案:

答案 0 :(得分:2)

  • fish#index的名称为fish_index
  • fish#show的名称为fish

所以你应该使用:

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

将鱼的个人资料链接到:

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