Nat*_*anB 2 ruby if-statement ruby-on-rails
我在Rails 5.2项目中使用以下代码:
c = Country.where(name: "test").first_or_create
c.status = "Old"
c.save
Run Code Online (Sandbox Code Playgroud)
这行得通,但是,我只想在没有国家/地区的情况下更改状态(所以我只想插入国家/地区,而不要更新)。但是,我还需要在c以后的代码中使用。
我意识到我可以做一个if语句,但是我必须在代码中多次做类似的事情,而且似乎必须存在一个快捷方式。
create_with通过以下方式使用:
c = Country.create_with(status: 'old').find_or_create_by(name: 'test')
Run Code Online (Sandbox Code Playgroud)
仅在找不到名称为'test'的国家/地区时,才Country使用status 'old'和name 'test'创建。如果确实找到名称为“ test”的国家,则不会更新状态。
最终,c无论找到还是创建,它都将在中返回该国家。
create_with 仅在从关系对象创建新记录时设置属性。
| 归档时间: |
|
| 查看次数: |
234 次 |
| 最近记录: |