繁体   English   中英

如何获得红宝石中对象的属性?

[英]How do I get the attributes of an object in ruby?

我是Ruby和Rails的新手。 我一直试图了解所有用户的工作方式,并且不确定自己在做什么错。

我有以下观点:

<% provide(:title, "View all Users") %>

<h1>Users#viewall</h1>
<p>Find me in app/views/users/viewall.html.erb</p>

<% 
@users = User.all 
@users.each do |user|
  user.name
end
%>

其输出是数据库中对象的列表以及所有对象的数据。 例如,当我只想定位名称时,它就不起作用。

[#<User id: 1, name: "user name", email: "mail@mail.com", created_at: "2016-08-03 15:40:41", updated_at: "2016-08-03 15:40:41", password_digest: "$2a$10$KmWWK86H/dj.HAp9zcHOUOCbph1rawIer41kyH4dIrV...">]

我在这里想念什么? 我什至不十分确定要搜索什么,因为我不知道循环在喷什么。

您没有向用户显示数据。

在控制器方法中,应该添加

@users = User.all 

在您看来

<% @users.each do |user| %>
  <h1><%= user.name %></h1>
<% end %>
  • <%%> :这些括号用于评估表达式
  • <%=%> :这些括号计算表达式并呈现输出

您需要输出信息。 因此,在ERB中,当您具有类似以下的标签时:

<% i = 4 %>

执行代码。 当你有:

<%= "hi" %>

输出返回值。 因此,您真正想要的是:

<% User.all.each do |user| %>
  <%= user.name %>
<% end %>

不过,您应该与用户一起在控制器中设置一个实例变量:

def viewall
  @users = User.all
end

然后在您的视图中使用它:

<% @users.each do |user| %>
  <%= user.name %>
<% end %>

最好将SQL调用和大量逻辑保留在您的视图之外。 利用控制器,模型和助手来做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM