我的rails应用程序中有以下模型关联结构:
class User < ActiveRecord::Base
has_many :folders
has_many :notes
end
class Folder < ActiveRecord::Base
belongs_to :user
has_many :notes
end
class Note < ActiveRecord::Base
belongs_to :user
belongs_to :folder
end
我想要的是打电话
@folder.notes.create()
立即将备注分配给文件夹和文件夹所有者。
换句话说,而不是
@folder = current_user.folders.first
...
@note = Note.new
@folder.notes << @note
current_user.notes << @note
我想
@folder.notes.create()
实现这一目标的最佳方法是什么?
更新
或者我如何覆盖每个文件夹实例中的备注的创建,新和&lt;&lt; 功能。
答案 0 :(得分:0)
我找到了一个解决方案,感谢@Sharagoz指点我的回调方向!
after_add
回调可以解决问题。
以下是我改变的内容:
class Folder < ActiveRecord::Base
belongs_to :user
has_many :notes, after_add: :add_to_user
def add_to_user(note)
if(self.user)
self.user.notes << note
end
end
end