我的 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 中使用正确的模型即可。

10-07 14:21