包含多个连接的查询

时间:2013-02-01 19:51:34

标签: sql ruby-on-rails

我在Rails应用程序中有以下三个表/模型:

class ProgramType < ActiveRecord::Base
  attr_accessible :name, :description, :position

  has_many :programs
end

class Program < ActiveRecord::Base
  attr_accessible :site_id, :start_date, :end_date, :program_type_id,
                  :active, :name,:short_name

  belongs_to :program_type
  has_many :sessions
end

class Session < ActiveRecord::Base
  belongs_to :program
end

以下查询返回sessions表中的所有记录,而不是仅返回指定ProgramType的记录。我做错了什么?

Session
  .active
  .joins(:program)
  .joins(:program => :program_type)
  .where('program_types.name = ?', "Summer Domestic")

我尝试仅检索属于特定ProgramType的程序的那些会话记录。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为您可能遇到的问题与AR不知道您实际使用program_types这一事实有关,因为您使用的是SQL字符串。试试这个:

Session
 .active
 .joins( program: :program_type )
 .where( program_types: {name: "Summer Domestic"} )