-
Notifications
You must be signed in to change notification settings - Fork 330
Default values
scambra edited this page Apr 27, 2012
·
4 revisions
Active Scaffold use default values in new records the same way any active record model does, that is, using defaults defined in database. However, sometimes you need something more flexible than altering database or add some logic to it.
By following advice from Jeff Perrin at stackoverflow, you may use after_initialize from active record:
class Person
has_one :address
after_initialize :init
def init
self.number ||= 0.0 #will set the default value only if it's nil
self.address ||= build_address #let's you set a default association
end
end
If you need to use some request parameters or session info, or if you don't want to add after_initialize callback, you can override do_new method in the controller:
class PeopleController < ApplicationController
protected
def do_new
super
@record.owner = current_user
end
end