I've been using plain Ruby form objects in rails, but to keep my code organized, I've ended up having to add a ton of namespaces to them. So I'll have a form like:
class User::Registration::NewForm
extend Forwardable
extend ActiveModel::Naming
extend ActiveModel::Callbacks
include ActiveModel::Conversion
include ActiveModel::Validations
...
end
The annoyance with this is that the param_key for my forms becomes kind of daunting, e.g. user_registration_new_form
I'd like to override this somehow, and I think I need to mess with the model_name
and/or param_key
methods from ActiveModel::Naming
(http://apidock.com/rails/ActiveModel/Naming/param_key/class). But I can't get it to work.
Has anyone been able to successfully override the default param_key for a model?
Gah, I finally got it! You just need to define a class model_name
method, and return an ActiveModel::Name
object.
So something like:
self.model_name
ActiveModel::Name.new(User)
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With