Rails WHERE--AND 条件查找同一属性的两个或多个值
Rails WHERE--AND condition to find two or more values of the same attribute
我正在尝试实施我自己的身份验证系统,其中登录用户应该看到他们来自的状态的记录:
if current_user.role.name == "state_admin" && current_user.state.name == "Texas"
@b = Staff.where(state_id: 3)
得克萨斯州的 state_id 是 3。
但是,我想创建一个特殊豁免,德克萨斯管理员也可以在其中查看佛罗里达州的记录。
我已经编写了以下代码来尝试实现这一点:
@staffs= Staff.where(state_id: 3).or(Staff.where(state_id: 4))
当我转到索引页面时,只显示德克萨斯州的记录。我想列出德克萨斯州 AND
佛罗里达州 (state_id 4) 的记录。
我哪里错了?我已经用了几个小时了,但我似乎无法让它工作(虽然我是初学者)。
如 Florent Ferry 在评论中所述,您可以这样写:
@staffs = Staff.where(state_id: [3, 4])
Active Record 也值得一读:https://guides.rubyonrails.org/active_record_basics.html
我正在尝试实施我自己的身份验证系统,其中登录用户应该看到他们来自的状态的记录:
if current_user.role.name == "state_admin" && current_user.state.name == "Texas"
@b = Staff.where(state_id: 3)
得克萨斯州的 state_id 是 3。
但是,我想创建一个特殊豁免,德克萨斯管理员也可以在其中查看佛罗里达州的记录。 我已经编写了以下代码来尝试实现这一点:
@staffs= Staff.where(state_id: 3).or(Staff.where(state_id: 4))
当我转到索引页面时,只显示德克萨斯州的记录。我想列出德克萨斯州 AND
佛罗里达州 (state_id 4) 的记录。
我哪里错了?我已经用了几个小时了,但我似乎无法让它工作(虽然我是初学者)。
如 Florent Ferry 在评论中所述,您可以这样写:
@staffs = Staff.where(state_id: [3, 4])
Active Record 也值得一读:https://guides.rubyonrails.org/active_record_basics.html