Best way to find_or_create_by_id but update the attributes if the record is found

前端 未结 7 1504
情书的邮戳
情书的邮戳 2021-01-06 03:50

I\'m looking for a clean way to create a record with a set of attributes if the record does not exist and - if the record do exist - to update its attributes. I love the syn

7条回答
  •  梦谈多话
    2021-01-06 04:09

    I have been using this patten for seeds:

    Category.find_or_initialize_by(id: category.id).update |c|
      c.name = category.name
    end
    

    It works the same as Dale Wijnand's and Teoulas answers (only saves the instance once) but uses a block like in your question.

提交回复
热议问题