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

时间:2018-03-03 21:45:44

标签: ruby-on-rails

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

1 个答案:

答案 0 :(得分:0)

用户模型中定义了以下两种方法:

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: "test@example.com").update_or_create(name: "abc")