在循环中访问活动记录时的未定义方法

时间:2016-03-14 20:41:43

标签: ruby-on-rails

我正在尝试渲染@artclasses_mine。

这就是我在artclasses_controller中所拥有的 - 我访问另一个模型Cregistration。

  @array = Array.new
  Cregistration.where(cuser: current_user.email).find_each(batch_size: 50) do |i|
    @array[i] = Cregistration.cclass
  end  
  @artclasses_mine = Artclass.where( id: @array )

然后在HTML文件中我做

    <%= render @artclasses_mine %>

我得到的错误是"undefined method 'cclass' for #<Class"

我意识到可能通过使用&#34;其中&#34;我访问关系而不是实际记录,所以我尝试了

Cregistration.find_each(:batch_size => 50) do |i|

仍然是同样的错误

如果我从循环中访问Cregistration模型,一切正常。

我认为问题在于语法,但我无法理解。

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您正在尝试访问类对象中的实例方法。

@array = []
Cregistration.where(cuser: current_user.email).limit(50).each do |reg|
  @array << reg.cclass
end
@artclasses_mine = Artclass.where(id: @array)

在此,我们将每个实例与循环内的reg进行对话,将push / << cclass@array进行对话。