尝试列出属于此项目模型的所有用户

时间:2015-11-29 00:31:57

标签: ruby-on-rails ruby

user和project_model有一个habtm关联,这是project_models索引的一部分,每个都要显示一个project_models.users列表。这很简单,由于某种原因,它一直在抛出错误:

编辑:忘记提及每个用户都有很多部分,其中一个是他们的电子邮件,我试图在列表中显示。

     @members = project_model.users.all
   <% @members.each do |member| %>
    <%= member.email %>
    <% end %>

它告诉我.each是nil的未定义方法:NilClass。我不明白我做错了什么。连接表是否设置错误?

  class CreateJoinTableProjectModelUser < ActiveRecord::Migration
  def change
   create_join_table :users, :project_models do |t|
     # t.index [:user_id, :project_model_id]
     # t.index [:project_model_id, :user_id]
    end
   end
  end

还是别的什么?我是Rails的新手(第一次使用它)所以如果问题有点低,请原谅我。

1 个答案:

答案 0 :(得分:1)

每当遇到

时,请详细说明此错误
undefined method `each' for nil:NilClass

您在某些内容(@members)上调用了each方法,该方法为零。这意味着它尚未在控制器中定义。由于没有定义,因此会出现undefined method错误。

最好在视图中调用实例变量时检查它是否也在控制器中定义。

如果在控制器中调用私有方法,也可能会出现此错误。