我的模型和它的關聯是:導軌 - 避免關聯自動保存
class Post < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :post
validates :commenter, :presence => true
end
案例1:當我嘗試下面的代碼自動保存方法被調用。
@post = Post.find(3)
@comments = @post.comments
p @comments #=> []
p @comments.class #=> Array
if @comments.empty?
3.times do
@comments << @post.comments.build
end
end
p @comments.first.errors #=>{:commenter=>["can't be blank"]}
案例2:如果我手動初始化同一空數組到@comments,自動保存並沒有叫。例如,
p @comments #=> []
p @comments.class #=> Array
if @comments.empty?
@comments = []
p @comments #=> []
3.times do
@comments << @post.comments.build
end
end
p @comments.first.errors #=>{}
什麼是避免自動保存,並請任何一個解釋爲什麼上面的代碼不同的表現最佳的解決方案?
@ dimuch-:給了明確的解釋和工作液的感謝。 –