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的新手(第一次使用它)所以如果问题有点低,请原谅我。
答案 0 :(得分:1)
每当遇到
时,请详细说明此错误undefined method `each' for nil:NilClass
您在某些内容(@members)上调用了each
方法,该方法为零。这意味着它尚未在控制器中定义。由于没有定义,因此会出现undefined method
错误。
最好在视图中调用实例变量时检查它是否也在控制器中定义。
如果在控制器中调用私有方法,也可能会出现此错误。