2010-05-10 84 views
0

紅寶石與我的第一個項目麻煩下面是書控制器我的索引行動:http://pastebin.com/XdtGRQKV我有在軌道上

下面是我剛纔提到的行動的看法:http://pastebin.com/nQFy400m

這裏的而不被記錄結果在:http://i.imgur.com/rQoiw.jpg

這裏是當我登錄時使用的用戶「管理員」結果:http://i.imgur.com/E1CUr.jpg

所以問題是,在視圖中,25行前'user'變量似乎是空的(或未加載),並且在第25行後,變量'user'具有期望值。

我試圖初始化書籍控制器的索引方法中的變量,但得到完全相同的結果。

在此先感謝!

順便說一句,由於stackoverflow的限制,BTW必須製作鏈接文本。

+3

這可能會更好,如果你不只是鏈接到酸ces和發生的事情,但實際上把它們放在你的問題中。我當然不想打開四個不同的鏈接,只是想知道你在問什麼! – LukeN 2010-05-10 13:07:46

回答

2

您沒有輸出user.username。它應該是<%= user.username %>,不<% user.username %>

3

此:

user = User.find_by_id(session[:user_id]) 

應該在控制器,而不是在視圖(!MVC)是這樣的:

@user = User.find_by_id(session[:user_id]) 
在你看來

然後,@Voyta回答,請使用<%= @user.username %><% %>中的代碼會被評估,但不會被渲染,所以如果你想把結果放到你的html中,你需要添加=。如果您在單行使用if喜歡這裏

<% if user %> 
    <td><%= link_to 'Show', book %></td> 
    <% if user.admin == 1 %> 
    <td><%= link_to 'Edit', edit_book_path(book) %></td> 
    <td><%= link_to 'Delete', book, :confirm => 'Are you sure?', :method => :delete %></td> 
    <% end 
end 
%> 

<% 
if user 
    if user.admin == 1 
%> 
<%= link_to 'New book', new_book_path %> 
<% 
    end 
end 
%> 

你可以寫同樣是這樣的:

而且都是你if userif user.admin == 1看起來好多了這樣

<%= link_to 'New book', new_book_path if user && user.admin == 1 %>