Mic*_*eal 5 ruby ruby-on-rails ruby-on-rails-3.1 ruby-on-rails-3.2
我通过位于http://ruby.railstutorial.org的教程在轨道上尝试ruby .我到了可以创建用户的位置,并显示了他们的名字和gravatar:
http://localhost:3000/users/1
Run Code Online (Sandbox Code Playgroud)
现在我想在用户访问时显示所有用户:
http://localhost:3000/users/
Run Code Online (Sandbox Code Playgroud)
这是我的控制器:
class UsersController < ApplicationController
def index
@user = User.all
end
#...
end
Run Code Online (Sandbox Code Playgroud)
这是我的看法.
#View for index action in user's controleer
<h1>All users</h1>
<ul class="users">
<% @users.each do |user| %>
<li><%= user.content %></li>
<% end %>
</ul>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误.
undefined method `each' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我为什么索引页面不能正常工作.
MrY*_*iji 13
问题来自@users不存在的变量:
在您的索引操作中,您设置@user为所有用户:
def index
@user = User.all
end
Run Code Online (Sandbox Code Playgroud)
按照惯例,当我们从DB中检索多个条目时,我们使用多个名称,这就是您@users在视图中调用(注意's')的原因.只需重命名你@user来@users,它会好起来的;)
def index
@users = User.all
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23107 次 |
| 最近记录: |