ActiveRecord查询语法问题:如何正确编写语句查询Phase列匹配的记录
错误原因
你现有写法将case_file.phase用双引号包裹,被识别为固定字符串传入查询条件,实际执行的SQL是匹配state字段值为case_file.phase这个字符串的记录,所以返回空结果。
正确写法
根据你的实际查询需求二选一即可:
- 若你需要查询phase字段等于
case_file对象的phase属性值的记录:
CaseFileStatus.where(phase: case_file.phase) # 取第一条匹配记录的话补充.first后缀即可,和你之前的正确写法一致 CaseFileStatus.where(phase: case_file.phase).first
- 若你需要查询state字段等于
case_file对象的phase属性值的记录,直接去掉case_file.phase外层的引号即可:
CaseFileStatus.where(state: case_file.phase)
内容的提问来源于stack exchange,提问作者user16741832
相关产品推荐
相关产品推荐

