我创建了一个名为pais的脚手架(这是巴西葡萄牙语中的一个单词,与该国家相同),我使用了以下命令创建了一个脚手架:

ruby script\generate scaffold pais name:string abreviattion:string


首先,我将词尾改成我的本地习惯用法,就像这样:

inflect.plural /^([a-zA-z]*)s$/i, '\1ses'  #The plural of Pais is Paises


当我尝试打开http://localhost:3000/paises上的页面时,我收到以下错误:

undefined method `edit_pais_path' for #<ActionView::Base:0x387fdf4>


提前致谢。

最佳答案

问题

"pais".pluralize导致"pais"

对于选择制作News模型的人来说,这确实很常见。 Rails需要区分模型的单数形式和复数形式。

routes.rb

map.resources :pais, :singular => :pai


现在您将使用

pai_pathedit_pai_pathnew_pai_path



或者

map.resources :pais, :as => "goats"


将为您生成以下路径:

HTTP    URL             controller  action
GET     /goats          Pais        index
GET     /goats/new      Pais        new
POST    /goats          Pais        create
GET     /goats/1        Pais        show
GET     /goats/1/edit   Pais        edit
PUT     /goats/1        Pais        update
DELETE  /goats/1        Pais        destroy


Rails Routing from the Outside in上查阅guides.rubyonrails.org指南以获取更多信息

10-08 04:22