Rails - 更改模型的默认param_key

时间:2013-10-31 01:22:06

标签: ruby-on-rails ruby-on-rails-3 forms activemodel

我一直在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_namehttp://apidock.com/rails/ActiveModel/Naming/param_key/class)中的param_key和/或ActiveModel::Naming方法。但我无法让它发挥作用。

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

1 个答案:

答案 0 :(得分:4)

加,我终于明白了!您只需要定义一个类model_name方法,然后返回一个ActiveModel::Name对象。

类似于:

self.model_name
  ActiveModel::Name.new(User)
end