我在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
并不难,但这似乎并不干。
答案 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"