For my app, I have different signup entry points that validate things differently.
So in the main signup, nothing is required except for the email and password field. In an alternative signup field, many more are required. So in the user model I have
validate_presence_of :blah, :lah, :foo, :bah, :if => :flag_detected
def flag_detected
!self.flag.nil?
end
I want to set that flag through the controller. However that flag isn’t a database field. I’m just wondering if this is achievable in Rails or there is something wrong with the way that I am thinking about this? If so, what’s the best way to achieve this? Thanks.
What you need is
attr_accessorbasically
attr_accessor :flagcreate theuser.flaganduser.flag = ...methods for your model.and
attr_accessibleis for mass-assignment protection.