2012-02-11 56 views
0

我有一個has_many:通過關聯,並且我正在迭代子節點以放置一些信息。但我也想從循環中的連接表中獲取一些信息。以下是在需要幫助的部分周圍發表評論的方法。我能否像這樣以簡單的方式從連接表中獲得該會員編號?如何在循環has_many時從連接表中獲取信息:通過

class Customer < ActiveRecord::Base 
has_many :customer_memberships 
has_many :membership_programs, :through => :customer_memberships 

def membership_info_to_json 
    info ={"benefits" => [], "omitted_stuff" => {}} 
    self.membership_programs.each do |membership| 
    ################################################################## 
    #THIS INFO IS IN THE JOIN TABLE ################################## 
    info["membership_numbers"] << customer_membership.membership_number 
    ################################################################## 

    #Omitted: the rest of the loop deals with membership. 
    end 
    info.to_json 
end 

回答

0

有關你的嘗試令我困惑。我不完全確定它是什麼,但除非我錯了,membership_program也會有很多customer_memberships。如果是這種情況,那麼你將不得不爲每個會員收集。

def membership_info_to_json 
    info ={"membership_numbers"=>[], "benefits" => [], "omitted_stuff" => {}} 
    self.membership_programs.each do |membership| 
    info["membership_numbers"] << membership.customer_memberships.collect{|cm| cm.membership_number} 
    end 
    info["membership_numbers"].flatten! 
    info.to_json 
end 

我希望有幫助。

相關問題