sql - Rails WHERE--AND 条件来查找相同属性的两个或多个值
问题描述
我正在尝试实现自己的身份验证系统,登录的用户应该看到他们来自的状态的记录:
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
推荐阅读
- shell - 从 udev 规则运行 shell 脚本
- excel - Powerpoint 自动更新图表链接宏
- android - 使用相同方法的 RecyclerView ViewHolders 进行清洁代码练习。科特林
- javascript - 反应上下文 - 状态不正确
- java - Pitest 以看似不可能的方式改变 Java 源代码
- azure-data-explorer - 转置 ColumnName 和 Value KQL/Kusto/Data Explorer
- c - Fscanf 没有读取整个 popen
- c++ - 缺少 stc++.lib;如何从源代码构建?
- c++ - 如何构建混合的 NET5.0 和 C/C++ 解决方案?
- csv - Zappy SSIS 在前面插入 /