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(如果我错了,请抱歉)使用other
      join
      。请阅读关于左连接,内连接,右连接。