Ruby on rails 没有任何关联的活动记录联接表出现问题
我正在尝试过滤掉所有不在计划发布表中的对象(照片)。我让sql语句正常工作:Ruby on rails 没有任何关联的活动记录联接表出现问题,ruby-on-rails,activerecord,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 我正试图使用active record在rails中实现这一点,但这两个表彼此不关联,因此我在使用.join时遇到了问题,并且得到了一个未定义的方法“join”错误。这是
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
我正试图使用active record在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
不是字符串上的方法。您需要将表名转换为模型类的名称,然后对其调用#constantize
以获取类常量,您可以在其上调用#joins
分类(@objects.table_name).constantize.joins#。。。
“{@objects.table_name}”
是一个字符串,\joins
不是字符串上的方法。您需要在类字符串上调用#constantize
,以获取类常量,您可以在类字符串上调用#joins
。因此,您需要找出如何获取类名而不是表名。如果我的答案解决了您的问题,您应该将其标记为正确。