Rails使用什么方法来获取ActiveRecord资源的参数名称?

时间:2011-10-04 14:25:03

标签: ruby-on-rails

我在ActiveRecord和FormHelper文档和API中进行了挖掘,我无法找到Rails如何从class Namespace::MyResource < ActiveRecord::Base这样的AR类转到参数名namespace_my_resource

虽然我确信编写自己的方法class ActiveRecord::Base; def to_pname; self.class.name.underscore.gsub(/\//, '_'); end; end并不难,但这似乎并不干。

2 个答案:

答案 0 :(得分:1)

include ActiveSupport::Inflector
tableize "Namespace::MyResource"

=&GT; “namespace / my_resources”

那是你的结果。添加一个简单的gsub来将斜杠更改为下划线:

tableize("Namespace::MyResource").gsub(/\//,'_')

=&GT; “namespace_my_resources”

不确定这是否与ActiveRecord完全相同,但是以非常一般的方式解决它。

答案 1 :(得分:0)

您需要params[:namespace_my_resource]

的单数版本
"Namespace::MyResource".underscore.gsub(/\//,'_')

=> "namespace_my_resource"