如果Rails中已经存在具有相同属性的记录,如何创建记录或编辑它?

问题描述 投票:1回答:1

具体而言,记录具有并且属于许多用户,并且用户可以创建记录,或者如果已经存在,则将自己添加到记录所具有的用户。

ruby-on-rails
1个回答
0
投票

在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")
© www.soinside.com 2019 - 2024. All rights reserved.