我一直在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/

10-11 17:16