ruby-on-rails - 没有任何关联的活动记录连接表出现问题
问题描述
我正在尝试过滤掉不在预定帖子表中的所有对象(照片)。我有 sql 语句工作:
Select * from photos p left join scheduled_posts sp on sp.photo_url = p.url where p.trashed = false and sp.photo_url is null
我正在尝试使用活动记录让它在 Rails 中工作,但是这两个表没有相互关联,因此我在使用 .join 时遇到了问题,并且收到了未定义的方法“join”错误。这是我当前的代码:
@objects = "#{@objects.table_name}".joins("left join scheduled_posts sp on sp.photo_url = p.url ").where("photo_url @> ?", nil)
解决方案
"#{@objects.table_name}"
是一个字符串,而#joins
不是String
. 不是在表名上调用,而是需要将表名转换为模型类的名称,然后#constantize
在上面调用得到类常量,就可以调用#joins
了。
classify(@objects.table_name).constantize.joins # ...
推荐阅读
- javascript - 如何在带括号的javascript中使用正则表达式运算符“或”?
- python-3.x - MatPlotLib 以不同方式绘制最后几个项目
- qt - Qt3D中网格尺寸变化时如何保持纹理纵横比
- javascript - 即使加载成功,国际电话号码小部件也不会出现?
- opengl - OpenGL:如何在一次调用中绘制多条线带?
- python - 尝试在 Kvlang 的 BoxLayout 中重新定位图像时出现问题
- jquery - 我在使用 jquery 进行引导验证时遇到问题,请问如何解决 $ undefined 问题,我的代码有什么问题吗?
- typescript - javascript 导出默认为打字稿
- bluetooth - 我可以拦截笔记本电脑蓝牙加密狗内置的所有附近蓝牙设备的流量吗?
- angular - 将自定义样式应用于 ngb 模态