发布
社区首页 >问答首页 >Rails优先或初始化选择多个枚举

Rails优先或初始化选择多个枚举
EN

Stack Overflow用户
提问于 2019-03-27 00:50:18
回答 1查看 57关注 0票数 0

Status是一个枚举,我需要找到第一个是waitingdeclined的用户,如果不存在,则初始化一个

下面的代码应该可以工作,但给了我一个错误:

代码语言:javascript
代码运行次数:0
复制
User.where(status: [:waiting, :declined]).first_or_initialize
=> ArgumentError ('[:waiting, :declined]' is not a valid status)

我认为这是因为status不能是符号数组。我也尝试过:

代码语言:javascript
代码运行次数:0
复制
User.where(status: [:waiting, :declined]).first_or_initialize({ status: :waiting })
# And 
User.where(status: [:waiting, :declined]).first_or_initialize do |user|
  user.status = :waiting
end

但这两种方法都不起作用。如何执行此查询?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-27 01:04:04

要使其正常工作,请使用以下代码:

代码语言:javascript
代码运行次数:0
复制
User.where(status: :waiting).or(User.where(status: :declined)).first_or_initialize({status: :waiting})

也许这不是最漂亮的代码,但它应该可以工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55362364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档