对于每个循环@object并使@ object.attribute无效

时间:2012-03-05 11:11:59

标签: ruby-on-rails ruby-on-rails-3 object attributes for-loop

我试图为每个循环真正的@participants集合,如下所示:

- (1..@participants.count).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值感到困惑,无法弄清楚如何搜索解决方案。我应该使用渲染集合,还是有办法为每个循环参与者获取participant.id? THX

1 个答案:

答案 0 :(得分:2)

如果参与者是参与者对象的数组,则您不必创建范围,可以执行以下操作:

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

设置rails关系甚至更好。

class Participant
  belongs_to :user
end

这样您就可以执行participant.user

我无法告诉你如何专门设置这些关系,因为你没有提供足够的细节。但这应该让你开始。