我一直在Rails中使用普通的Ruby表单对象,但是为了使代码井井有条,我最终不得不为其添加大量的命名空间。所以我将有一个类似的表格:
class User::Registration::NewForm
extend Forwardable
extend ActiveModel::Naming
extend ActiveModel::Callbacks
include ActiveModel::Conversion
include ActiveModel::Validations
...
end
烦人的是,我的表单的param_key变得令人生畏,例如
user_registration_new_form
我想以某种方式覆盖它,我想我需要弄混
model_name
(http://apidock.com/rails/ActiveModel/Naming/param_key/class)中的param_key
和/或ActiveModel::Naming
方法。但是我无法使它正常工作。有没有人能够成功覆盖模型的默认param_key?
最佳答案
加哈,我终于明白了!您只需要定义一个类model_name
方法,并返回一个ActiveModel::Name
对象。
所以像这样:
self.model_name
ActiveModel::Name.new(User)
end
关于ruby-on-rails - Rails-更改模型的默认param_key,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19696823/