ruby-on-rails – Rails ActiveRecord Shovel(<<)运
所以我的应用程序中的代码附加了与“<<”相关的has_many关系像这样的运算符:
class BlogPost < ActiveRecord::Base has_many :comments def add_comment(content) @new_comment = Comment.create(content) self.comments << @new_comment end end 它似乎工作.我从来没有真正质疑它或想知道什么时候它叫“保存”(我想我从来没有深刻理解何时称为“保存”开始). 但是,似乎注释中的after_save挂钩不会在我的add_comment函数中被激活,这会提示我询问: 怎么<<运算符在activerecord中工作,我在哪里可以阅读更多信息? 谢谢 解决方法
当您使用铲运算符(<<<<<<<<<<<<<所以,当你这样做时:
self.comments << @new_comment @new_comment被添加到comments集合中,并立即触发更新SQL而不等待父对象上的保存或更新调用,除非父对象是新记录. 从this documentation起
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |