我是ruby on rails的新手,我试图只显示用户的电子邮件,但所有用户的字段也会显示,我不知道问题出在哪里。
这是users_controller
def index
@users=User.all
end
这是我的index.html.erb
:
<h1>Users#index</h1>
<%= link_to 'Register', new_user_url %><br/>
<ul>
<%= @users.each do |user| %>
<li><%= user.email %></li><br/>
<% end %>
</ul>
什么服务器返回:
Started GET "/" for 127.0.0.1 at 2014-10-14 12:15:44 +0100
ActiveRecord::SchemaMigration Load (1.0ms) SELECT `schema_migrations`.* FROM `schema_migrations`
Processing by UsersController#index as HTML
User Load (2.0ms) SELECT `users`.* FROM `users`
Rendered users/index.html.erb within layouts/application (21.0ms)
Completed 200 OK in 38796ms (Views: 38714.2ms | ActiveRecord: 2.0ms)
答案 0 :(得分:2)
您不需要在@ users.each行前面使用等号。试试这个。
<h1>Users#index</h1>
<%= link_to 'Register', new_user_url %><br/>
<ul>
<% @users.each do |user| %>
<li><%= user.email %></li><br/>
<% end %>
</ul>
答案 1 :(得分:2)
该行
<%= @users.each do |user| %>
应替换为
<% @users.each do |user| %>
开头的<%=
不仅意味着处理此行,还会显示结果。 <%
表示仅处理,不显示。
答案 2 :(得分:0)
您正在指定<%= @users.each do |user| %>
,因此它会显示 @users 变量中的所有用户。所以删除&#34; =&#34;在erb代码中添加此行<% @users.each do |user| %>