通过两个 has_many 关联获取对象数组

get an array of objects via two has_many associations

我有:

class Booking < ActiveRecord::Base

   belongs_to :job
   has_many :items

 end

我想获取给定@job 的项目列表。此解决方案有效:

 @items = []

 @job.bookings.each do |booking|
     booking.items.each do |item|
         @items << item
     end
 end

但是我怎样才能更简洁地做到这一点?即类似于:

 @job.bookings.map{ |booking| booking.items }

在你的Jobclass中输入:has_many :items, through: :bookings然后你就可以直接调用@job.items了。