Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 没有任何关联的活动记录联接表出现问题_Ruby On Rails_Activerecord - Fatal编程技术网

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

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”错误。这是

我正在尝试过滤掉所有不在计划发布表中的对象(照片)。我让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”错误。这是我目前的代码:

@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
。因此,您需要找出如何获取类名而不是表名。如果我的答案解决了您的问题,您应该将其标记为正确。