ruby-on-rails - Rails SQL select,CASE 语句似乎没有按预期工作
问题描述
我试图了解如何在查询中使用 select 方法来返回自定义列。
我正在运行 Rails 5.2,数据库是 postgresql。
m = Message.all.select("messages.*, CASE WHEN id > 30 THEN TRUE ELSE FALSE END AS above_30")
仅返回带有所有列的消息表。如何获取above_30
列,最好是急切加载?
解决方案
存在,above_30
但 Rails 不会为其定义访问权限,因为您的架构中没有该名称的列。
您可以自己定义一个,或使用它m[:above_30]
来访问从查询返回的对象的“原始”属性。
推荐阅读
- python - 如果没有,如何让 python 脚本执行另一个命令?
- google-apps-script - 如何使用脚本构建条件格式?
- python - Heroku忽略runtime.txt文件
- oauth-2.0 - 从googleapis登录获取用户国家
- vba - 尝试在 Microsoft Word (VBA) 中删除包含文本框中特定文本的页面
- python - 初学者。在 python 中绘图无法识别指数之后的任何内容
- python - 使用 Flask 下载 csv 返回 404 错误
- javascript - JQuery 中的简单待办事项或注释列表 - 为什么按钮和代码不起作用?无法发现错误
- javascript - 如何将 Vue.component 与模块或 Vue CLI 一起使用?
- selenium - Selenium 不会“监听”“webdriver.chrome.driver”属性