通过两个 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 }
在你的Job
class中输入:has_many :items, through: :bookings
然后你就可以直接调用@job.items
了。
我有:
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 }
在你的Job
class中输入:has_many :items, through: :bookings
然后你就可以直接调用@job.items
了。