Ruby on rails Rails:通过联接从多个模型获取所有字段

Ruby on rails Rails:通过联接从多个模型获取所有字段,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,以下是三个模型: class Swimming::Classschedule < ActiveRecord::Base belongs_to :swimming_classtimes ,:class_name=>'Swimming::Classtime',:foreign_key => "classtime_id" attr_accessible :id,:coach_id, :level_id, :note, :classtime_id end class S

以下是三个模型:

class Swimming::Classschedule < ActiveRecord::Base
  belongs_to :swimming_classtimes ,:class_name=>'Swimming::Classtime',:foreign_key => "classtime_id"  
  attr_accessible :id,:coach_id, :level_id, :note, :classtime_id
end


class Swimming::Classtime < ActiveRecord::Base
  has_many :swimming_classschedules,:class_name=>'Swimming::Classschedule'
  belongs_to :swimming_timeblocks ,:class_name=>'Swimming::Timeblock',:foreign_key => "timeblock_id"    
  attr_accessible :date, :end, :start,:timeblock_id,:id
end


class Swimming::Timeblock < ActiveRecord::Base
  has_many :swimming_classtimes,:class_name=>'Swimming::Classtime'
  has_many :swimming_classschedules,:class_name=>'Swimming::Classschedule',:through => :swimming_classtimes
  attr_accessible :name,:id
end 

缺少什么?

swiming::Classschedule仅为其db列定义了属性。您可以使用访问其他字段

对象[:列名称]

例如:

schedules = Swimming::Classschedule.joins(:swimming_classtimes=>:swimming_timeblocks).select("swimming_classtimes.*,swimming_timeblocks.*,swimming_classschedules.*").where("swimming_classtimes.date >= '2013-06-01' and swimming_classtimes.date <= '2013-06-08' ")
=> [#<Swimming::Classschedule id: 7, coach_id: nil, level_id: nil, note: nil, created_at: "2013-06-08 23:24:31", updated_at: "2013-06-08 23:24:31", lesson_id: 1, classtime_id: 24, lane_id: nil, program_id: nil, classtype_id: nil>]
"swimming_classtimes.*,swimming_timeblocks.*,swimming_classschedules.*"
schedules.first[:timeblock_id]