我在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的程序的那些会话记录。任何帮助将不胜感激。
答案 0 :(得分:0)
我认为您可能遇到的问题与AR不知道您实际使用program_types
这一事实有关,因为您使用的是SQL字符串。试试这个:
Session
.active
.joins( program: :program_type )
.where( program_types: {name: "Summer Domestic"} )