aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/nested_attributes.rb
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2009-02-06 02:25:55 +0000
committerPratik Naik <pratiknaik@gmail.com>2009-02-06 02:25:55 +0000
commitb9ba2fe55059a6d9f141d1d502e16bdfd46f26cb (patch)
tree491c3ce7d406a723e5c06e3bccf4559a0de86199 /activerecord/lib/active_record/nested_attributes.rb
parent97612394672203eefd04e3b1947273a3ab4ec930 (diff)
parent96d610553e5fdaabc923835ab1f194070ddb4477 (diff)
downloadrails-b9ba2fe55059a6d9f141d1d502e16bdfd46f26cb.tar.gz
rails-b9ba2fe55059a6d9f141d1d502e16bdfd46f26cb.tar.bz2
rails-b9ba2fe55059a6d9f141d1d502e16bdfd46f26cb.zip
Merge commit 'mainstream/master'
Conflicts: railties/guides/files/javascripts/code_highlighter.js railties/guides/files/javascripts/guides.js railties/guides/files/javascripts/highlighters.js railties/guides/files/stylesheets/main.css railties/guides/files/stylesheets/print.css railties/guides/files/stylesheets/reset.css railties/guides/files/stylesheets/style.css railties/guides/files/stylesheets/syntax.css railties/guides/rails_guides/indexer.rb railties/guides/source/2_2_release_notes.textile railties/guides/source/2_3_release_notes.textile railties/guides/source/action_controller_overview.textile railties/guides/source/action_mailer_basics.textile railties/guides/source/active_record_basics.textile railties/guides/source/activerecord_validations_callbacks.textile railties/guides/source/association_basics.textile railties/guides/source/caching_with_rails.textile railties/guides/source/command_line.textile railties/guides/source/debugging_rails_applications.textile railties/guides/source/form_helpers.textile railties/guides/source/getting_started.textile railties/guides/source/i18n.textile railties/guides/source/layout.html.erb railties/guides/source/layouts_and_rendering.textile railties/guides/source/migrations.textile railties/guides/source/performance_testing.textile railties/guides/source/plugins.textile railties/guides/source/rails_on_rack.textile railties/guides/source/routing.textile railties/guides/source/security.textile railties/guides/source/testing.textile
Diffstat (limited to 'activerecord/lib/active_record/nested_attributes.rb')
-rw-r--r--activerecord/lib/active_record/nested_attributes.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/nested_attributes.rb b/activerecord/lib/active_record/nested_attributes.rb
index 8bfdadd0e3..5778223c74 100644
--- a/activerecord/lib/active_record/nested_attributes.rb
+++ b/activerecord/lib/active_record/nested_attributes.rb
@@ -86,7 +86,8 @@ module ActiveRecord
# For each key in the hash that starts with the string 'new' a new model
# will be instantiated. When the proc given with the <tt>:reject_if</tt>
# option evaluates to +false+ for a certain attribute hash no record will
- # be built for that hash.
+ # be built for that hash. (Rejecting new records can alternatively be done
+ # by utilizing the <tt>'_delete'</tt> key. Scroll down for more info.)
#
# params = { 'member' => {
# 'name' => 'joe', 'posts_attributes' => {
@@ -258,11 +259,14 @@ module ActiveRecord
# If a <tt>:reject_if</tt> proc exists for this association, it will be
# called with the attributes as its argument. If the proc returns a truthy
# value, the record is _not_ build.
+ #
+ # Alternatively, you can specify the <tt>'_delete'</tt> key to _not_ build
+ # a record. See should_destroy_nested_attributes_record? for more info.
def build_new_nested_attributes_record(association_name, attributes)
if reject_proc = self.class.reject_new_nested_attributes_procs[association_name]
return if reject_proc.call(attributes)
end
- send(association_name).build(attributes)
+ send(association_name).build(attributes) unless should_destroy_nested_attributes_record?(true, attributes)
end
# Assigns the attributes to the record specified by +id+. Or marks it for