首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >合并ActiveRecord_Relation

合并ActiveRecord_Relation
EN

Stack Overflow用户
提问于 2016-10-15 04:55:20
回答 1查看 149关注 0票数 0

在模型横幅中

代码语言:javascript
运行
复制
belongs_to :segment
belongs_to :basic_component
has_many :state_banners, dependent: :destroy
has_many :states, through: :state_banners

scope :banner_have_zero_cities, lambda { includes(state_banners: :state_banner_cities).where(state_banner_cities: {state_banner_id: nil}) }
scope :banner_by_state, lambda { |state_id| where("state_banners.state_id = ?", state_id) }
scope :banner_by_city, lambda { |city_id| joins(state_banners: :state_banner_cities).where("state_banner_cities.city_id = ?", city_id) }

在控制器中

代码语言:javascript
运行
复制
def scoped_collection
   @banners_cities = Banner.banner_by_city(city_id)
   @banners_states =Banner.banner_by_state(city.state_id).banner_have_zero_cities
   @banners = @banners_cities.concat(@banners_states)
   return @banners.joins(:basic_component)
 end

@banners_states.size => 1

@banners_cities.size => 2

@banners_states.merge(@banners_cities) SQL (0.2ms) SELECT DISTINCT bannersid FROM banners INNER JOIN state_banners ON state_bannersbanner_id=bannersid INNER JOIN state_banner_cities ON D11。D12=D13。D14 WHERE (state_banners.state_id = 3) AND D15。D16为NULL且(state_banner_cities.city_id = '260') LIMIT 25 OFFSET 0 => []

我需要3个

我尝试concat

@banners = @banners_cities.concat(@banners_states) @banners.size => 3

@banners.joins(:basic_component).order("basic_component.order asc").size => 2

缓存(0.0ms) SELECT COUNT( count_column ) FROM (SELECT 1 AS count_column FROM banners INNER JOIN state_banners ON state_banners.banner_id = banners.id INNER JOIN state_banner_cities ON state_banner_cities.state_banner_id =D26.D27 INNER JOIN D29上的D28。D30=D31.D32 WHERE (state_banner_cities.city_id = '260') LIMIT 25 OFFSET 0) subquery_for_count

:(,帮助

EN

回答 1

Stack Overflow用户

发布于 2016-10-15 05:28:31

你的帖子有点难以理解,但在查询的末尾试试.limit(3)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40051837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档