加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 在ActiveRecord中创建if不存在的函数?

发布时间:2020-12-12 06:45:13 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用Rails 3.2.8.如果状态记录尚不存在,我需要创建状态记录.如果存在状态记录,我什么都不做.所以我的代码是这样的: user_level_status = UserLevelStatus.where(user_id: user_id,level_id: level_id).firstif !user_level_status UserLevelStatus.cre
我正在使用Rails 3.2.8.如果状态记录尚不存在,我需要创建状态记录.如果存在状态记录,我什么都不做.所以我的代码是这样的:
user_level_status = UserLevelStatus.where(user_id: user_id,level_id: level_id).first
if !user_level_status
  UserLevelStatus.create(user_id: user_id,level_id: level_id,status: UserLevelStatus::READY)
end

有没有更好的方法来处理Rails / ActiveRecord?是否有与find_or_create_by_等效的机制?我可以使用find_or_create_by_user_id并检查level_id吗?我只是放弃了结果,所以即便这样也不那么优雅.

解决方法

就在这里.

Rails 3

user_level_status = UserLevelStatus.find_or_create_by_user_id_and_level_id(user_id,level_id)

导轨4:

user_level_status = UserLevelStatus.find_or_create_by(user_id: user_id,level_id: level_id)

你应该设置default status in your model.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读