2012-03-05 17 views
1

我試着對每個環路來說@participants收集象下面這樣:每個迴路@object並獲得@ object.attribute不工作

- ([email protected]).each do |participant| 
    - @user = User.where(:id => 1).first 
    # @user = User.where(:id => particpant.id).first ==> throws error: ... 
    # (undefined method `id' for 1:Fixnum): 
    #participants 
     #block 
     #image 
      = show_avatar(@user.id) 
      #name 
      = @user.username 

困惑於如何讓participant.id值爲每個循環對象,無法弄清楚如何尋找解決方案後。我應該使用渲染集合嗎,還是有辦法讓每個循環參與者獲得參與者id? THX

回答

2

您不必創建一個範圍內,你可以做到以下幾點,如果參與者是參與者對象的數組:

- @participants.each do |participant| 
    - user = User.where(:id => participant.id).first 

它甚至更好,設置一個軌道的關係。

class Participant 
    belongs_to :user 
end 

這樣,你可以簡單地做participant.user

我不能告訴你如何設置這些關係特別是因爲你沒有給足夠的細節。但是這應該讓你開始。