2016-08-03 45 views
0

我是Ruby和Rails的新手。我一直試圖讓所有用戶都能看到工作,並且不知道我做錯了什麼。如何獲取ruby中對象的屬性?

我有一個觀點:

<% 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: "[email protected]", created_at: "2016-08-03 15:40:41", updated_at: "2016-08-03 15:40:41", password_digest: "$2a$10$KmWWK86H/dj.HAp9zcHOUOCbph1rawIer41kyH4dIrV...">] 

我在這裏錯過了什麼?我甚至不確定谷歌是什麼,因爲我不知道循環吐出了什麼。

回答

2

您需要輸出信息。因此,在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調用和大量的邏輯出於您的意見。利用控制器,模型和幫手來做到這一點。

+0

謝謝,額外的解釋真的很有幫助。 – ramijames

3

您沒有向用戶顯示數據。

在你的控制器的方法,在這裏你應該添加

@users = User.all 

而且在你看來

<% @users.each do |user| %> 
    <h1><%= user.name %></h1> 
<% end %> 
  • <%%>:這些括號是用來計算表達式
  • <%=%>:這些括號評估表達式並呈現輸出結果