如何消除一些我不想展示的细节?

时间:2014-10-14 12:16:25

标签: ruby-on-rails

我是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)

3 个答案:

答案 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| %>