我在ruby.railstutorial.org上关注mhartl的教程,我遇到了users_controller索引函数的问题。在控制台中,我可以输入以下代码:
@users = User.all
并正确访问SQL数据库并显示所有用户的列表。但是,当我尝试加载页面时,我会得到各种错误,具体取决于我如何使用索引文件中的列表,但所有涉及列表的都是nil。例如,如果我的索引页面包含:
<% @users.each do |user| %>
<li>
<%= link_to user.name, user %>
</li>
<% end %>
服务器吐出:
undefined method `each' for nil:NilClass
render @users
之类的内容给了我'nil' is not an ActiveModel-compatible object that returns a valid partial path.
我真的很困惑,如果它在控制台中工作,我会得到这个错误。如果您需要我的其他代码,请告诉我。
感谢您的帮助!
答案 0 :(得分:6)
所有这些错误消息都表明@user在您的视图中为零。 假设视图是views / users / index.html.erb, 你在users_controller索引操作中初始化了@users吗?
def index
@users = User.all
end