具体而言,记录具有并且属于许多用户,并且用户可以创建记录,或者如果已经存在,则将自己添加到记录所具有的用户。
在User模型中定义了以下两种方法:
def self.update_or_create(attributes)
assign_or_initialize(attributes).save
end
def self.assign_or_initialize(attributes)
obj = first || new
obj.assign_attributes(attributes)
obj
end
然后你可以使用它像这样:
User.where(email: "[email protected]").update_or_create(name: "abc")