Kendall Gifford
2009-Jun-01 22:20 UTC
Does has_many collection ''<<'' (append operator) always save/create child in DB when parent isn''t new?
Howdy, the title mostly asks the question. Given the following: class Article < ActiveRecord::Base ; has_many :comments ; end class Comment < ActiveRecord::Base ; belongs_to :article ; end I have an article already instantiated in the database, referenced as @article. Will the following code always "create" (save to DB) a new comment? @article.comments << Comment.new :text => "Blah blah..." I would like to be able to add comments to an article that already already exists (and may already have comments that exist) in the database w/out the new comment being saved to the database. I would try this: @article.comments.build :text => "Blan blah..." The reason I don''t is because my Comment class is sub-classed using STI. Thus, my code really looks more like this: klass = Comment.get_class(params[:comment_type]) # get_class returns Comment or a sub-type @article.comments << klass.new :text => "Blah blah..." Anyone have any ideas on how I can add STI comments to an article w/ out saving them, doing so "the right way" (I''m sure I could ugly-hack it)? Thanks.