我的 rails3 应用程序中的 Controller 存在一些问题,该 Controller 称为 nas
我的 ruby 应用程序连接到现有数据库,因此表名必须保留为 nas。
在我的模型中,我以前能够做到这一点:
set_table_name
但我不知道如何在我的 Controller /路由中做到这一点。
现在,我的路线包含以下内容:
resources :nas
输出是:
new_na GET /nas/new(.:format) {:action=>"new", :controller=>"nas"}
edit_na GET /nas/:id/edit(.:format) {:action=>"edit", :controller=>"nas"}
na GET /nas/:id(.:format) {:action=>"show", :controller=>"nas"}
PUT /nas/:id(.:format) {:action=>"update", :controller=>"nas"}
DELETE /nas/:id(.:format) {:action=>"destroy", :controller=>"nas"}
如您所见,rails 删除了 's'
我该如何解决这个问题?
谢谢
最佳答案
这很令人困惑,因为我不知道“na”或“nas”是什么。从你的问题中,我有一个想法,你总是想将它称为“nas”,复数和单数。
如果是这种情况,那么答案是将其放入 config/initializers/inflections.rb
:
ActiveSupport::Inflector.inflections do |inflect|
inflect.uncountable "nas"
end
这也将使您的
Nas
模型默认使用 nas
表,因此不需要 set_table_name
。但是请注意,如果您不想,没有理由为您的 Controller 使用
Nas
!您可以为它们命名任何您喜欢的名称,只要这反射(reflect)在 routes.rb
中并且您在 Controller 中使用正确的模型即可。