Sql Ransack没有将Ransack::Search隐式转换为数组
我目前正在实现搜索功能的Ransack 我有一个模型活动,它与用户直接创建的活动以及其他活动协作,只要用户属于同一供应商 我可以将结果合并如下: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
@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])