我正在尝试过滤掉不在计划发布表中的所有对象(照片)。我的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)
答案 0 :(得分:1)
"#{@objects.table_name}"
是字符串,而#joins
不是String
上的方法。无需在表名上调用它,而是需要将表名转换为模型类的名称,然后在其上调用#constantize
以获取类常量,您可以在其上调用#joins
classify(@objects.table_name).constantize.joins # ...