Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Sql Ransack没有将Ransack::Search隐式转换为数组_Sql_Search_Ruby On Rails 4_Ransack - Fatal编程技术网

Sql Ransack没有将Ransack::Search隐式转换为数组

Sql Ransack没有将Ransack::Search隐式转换为数组,sql,search,ruby-on-rails-4,ransack,Sql,Search,Ruby On Rails 4,Ransack,我目前正在实现搜索功能的Ransack 我有一个模型活动,它与用户直接创建的活动以及其他活动协作,只要用户属于同一供应商 我可以将结果合并如下: @search = current_user.campaigns + current_user.vendor.campaigns.where.not(:user_id => current_user.id) 问题是,Ransack不会接受这种组合,而是会吐出 no implicit conversion of Ransack::Search i

我目前正在实现搜索功能的Ransack

我有一个模型活动,它与用户直接创建的活动以及其他活动协作,只要用户属于同一供应商

我可以将结果合并如下:

@search = current_user.campaigns + current_user.vendor.campaigns.where.not(:user_id => current_user.id)
问题是,Ransack不会接受这种组合,而是会吐出

no implicit conversion of Ransack::Search into Array
有人能告诉我如何重构这段代码吗

短暂性脑缺血发作

添加添加数据

当查看我的控制台时,我可以看到*当前用户.活动*:

Campaign Load (0.3ms)  
SELECT DISTINCT "campaigns".* FROM "campaigns" 
WHERE "campaigns"."user_id" = ?  [["user_id", 2]]
正在运行*当前用户.供应商.活动*给我:

Campaign Load (0.4ms)  
SELECT DISTINCT "campaigns".* FROM "campaigns" 
INNER JOIN "weeks" ON "campaigns"."id" = "weeks"."campaign_id" 
INNER JOIN "products" ON "weeks"."product_id" = "products"."id" 
INNER JOIN "locations" ON "products"."location_id" = "locations"."id" 
WHERE "locations"."vendor_id" = ?  [["vendor_id", 2]]
我可以通过以下方法获得当前用户的第一个过滤器:

@search = Campaign.where("campaigns.user_id" => current_user.id).search(params[:q])

但我不知道如何构建其余的连接表,以包含两个数据元素

已解决

 @search = Campaign.includes(:weeks).where('(campaigns.user_id LIKE ?) OR (weeks.vendor_id LIKE ?)', current_user.id, current_user.vendor.id).search(params[:q])