diff options
author | George Claghorn <george.claghorn@gmail.com> | 2017-03-17 10:29:19 -0400 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2017-03-17 15:29:19 +0100 |
commit | 73b86ac58b61b4c7b888962252a1a86dffb24081 (patch) | |
tree | ea34e055f17867f3811a874bdc51461b40fc417f /activerecord/lib/active_record/associations.rb | |
parent | eadbc82c47fd157ed4f1eb4c4983ab0734023106 (diff) | |
download | rails-73b86ac58b61b4c7b888962252a1a86dffb24081.tar.gz rails-73b86ac58b61b4c7b888962252a1a86dffb24081.tar.bz2 rails-73b86ac58b61b4c7b888962252a1a86dffb24081.zip |
Add :default option to belongs_to (#28453)
Use it to specify that an association should be initialized with a
particular record before validation. For example:
# Before
belongs_to :account
before_validation -> { self.account ||= Current.account }
# After
belongs_to :account, default: -> { Current.account }
Diffstat (limited to 'activerecord/lib/active_record/associations.rb')
-rw-r--r-- | activerecord/lib/active_record/associations.rb | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb index 4606c91ffd..6efa448d49 100644 --- a/activerecord/lib/active_record/associations.rb +++ b/activerecord/lib/active_record/associations.rb @@ -1647,6 +1647,9 @@ module ActiveRecord # +:inverse_of+ to avoid an extra query during validation. # NOTE: <tt>required</tt> is set to <tt>true</tt> by default and is deprecated. If # you don't want to have association presence validated, use <tt>optional: true</tt>. + # [:default] + # Provide a callable (i.e. proc or lambda) to specify that the association should + # be initialized with a particular record before validation. # # Option examples: # belongs_to :firm, foreign_key: "client_of" @@ -1660,6 +1663,7 @@ module ActiveRecord # belongs_to :comment, touch: true # belongs_to :company, touch: :employees_last_updated_at # belongs_to :user, optional: true + # belongs_to :account, default: -> { company.account } def belongs_to(name, scope = nil, options = {}) reflection = Builder::BelongsTo.build(self, name, scope, options) Reflection.add_reflection self, name, reflection |