ActiveRecord包含缺少记录的关联
我提出以下问题ActiveRecord包含缺少记录的关联,activerecord,ruby-on-rails-3.2,associations,Activerecord,Ruby On Rails 3.2,Associations,我提出以下问题 PortfolioDistribution.joins(:portfolio_distribution_split). select('policy_number, reinvestment_date, reinvestment_units, reinvestment_units, split_name, split_percentage'). where(:policy_number => policy_no, :reinvestment_date =>
PortfolioDistribution.joins(:portfolio_distribution_split).
select('policy_number, reinvestment_date, reinvestment_units,
reinvestment_units, split_name, split_percentage').
where(:policy_number => policy_no, :reinvestment_date => period,
:ods_psgamas_gls_portfolio_distribution_split => { :split_name => type })
它返回15条记录,但关联的模型portfolio\u distribution\u split
为nil
。如果我将查询更改为包含associaterd模型,如下所示:
PortfolioDistribution.joins(:portfolio_distribution_split).
select('policy_number, reinvestment_date, reinvestment_units,
reinvestment_units, split_name, split_percentage').
where(:policy_number => policy_no, :reinvestment_date => period,
:ods_psgamas_gls_portfolio_distribution_split => { :split_name => type }).
includes(:portfolio_distribution_split)
我只有3张唱片?如果我获取生成的SQL
并直接对数据库运行它,我会得到15条记录。其他12张唱片怎么了
- activemodel(3.2.13)
- activerecord(3.2.13)
- activerecord sqlserver适配器(3.2.8)
- 动态资源(3.2.13)
- 动态支持(3.2.13)
- 我的问题是自负
portfolio\u distribution
和portfolio\u distribution\u split
具有一对多的关系
当我运行第一个查询时,我会得到每个组合\u分布\u分割的记录
第二个查询返回每个portfolio\u distribution
的记录,其中包含与portfolio\u distribution相关的portfolio\u distribution
数组,您可以在where
中指定portfolio\u distribution\u split
不应为零吗?因为includes(如果我错了,请抱歉)使用otherjoin
。请阅读关于左连接,内连接,右连接。