没有任何关联的活动记录联接表出现问题

时间:2019-07-05 18:09:00

标签: ruby-on-rails activerecord

我正在尝试过滤掉不在计划发布表中的所有对象(照片)。我的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)

1 个答案:

答案 0 :(得分:1)

"#{@objects.table_name}"是字符串,而#joins不是String上的方法。无需在表名上调用它,而是需要将表名转换为模型类的名称,然后在其上调用#constantize以获取类常量,您可以在其上调用#joins

classify(@objects.table_name).constantize.joins # ...