1

我在 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")

我试图只检索属于特定程序类型的程序的那些会话记录。任何帮助将不胜感激。

4

1 回答 1

0

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

Session
 .active
 .joins( program: :program_type )
 .where( program_types: {name: "Summer Domestic"} )
于 2013-02-01T20:02:00.463 回答