我正在使用 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
吗?我只会丢弃结果,所以即使这样也不是那么优雅。