【问题标题】:How to create a record or edit it if a record with the same attributes already exists in Rails?如果 Rails 中已存在具有相同属性的记录,如何创建或编辑记录?
【发布时间】:2018-08-11 20:57:57
【问题描述】:

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

【问题讨论】:

  • 这可能是同一个问题,但答案只说明了如何创建或查找记录,而不是如何创建或编辑记录。

标签: ruby-on-rails


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2015-07-02
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    相关资源
    最近更新 更多