6

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

我想以某种方式覆盖它,我想我需要弄乱(http://apidock.com/rails/ActiveModel/Naming/param_key/class)中的model_name和/或param_key方法。但我无法让它工作。ActiveModel::Naming

有没有人能够成功覆盖模型的默认 param_key?

4

1 回答 1

5

嘎嘎,我终于明白了!你只需要定义一个类model_name方法,并返回一个ActiveModel::Name对象。

所以像:

self.model_name
  ActiveModel::Name.new(User)
end
于 2013-10-31T14:55:26.133 回答