簡體   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