我有一個應用程序,在佈局中我有一個user_name div,根據他們是否登錄顯示不同的東西,是管理員等。現在我的代碼是以下:Ruby on Rails否則如果問題
<% if current_user.role == "admin" %>
<p id="admintxt">You are an admin!</p>
<%= link_to "Edit Profile", edit_user_path(:current) %>
<%= link_to "Logout", logout_path %>
<% elsif current_user %>
<%= link_to "Edit Profile", edit_user_path(:current) %>
<%= link_to "Logout", logout_path %>
<% else %>
<%= link_to "Register", new_user_path %>
<%= link_to "Login", login_path %>
<% end %>
我有一個CURRENT_USER助手已經和一切工作正常時,代碼只是:
<% if current_user %>
<%= link_to "Edit Profile", edit_user_path(:current) %>
<%= link_to "Logout", logout_path %>
<% else %>
<%= link_to "Register", new_user_path %>
<%= link_to "Login", login_path %>
<% end %>
現在,當我讓一個ELSIF語句,當我登錄的管理員它作品,我得到的文字顯示正確的鏈接。當我不是一個管理員用戶/註銷,我得到一個未定義的方法'的作用」爲無:NilClass錯誤......而且我CURRENT_USER東西在我的應用程序控制器聲明如下:
helper_method :current_user
private
def current_user_session
return @current_user_session if defined?(@current_user_session)
@current_user_session = UserSession.find
end
def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.record
end
任何想法我可以做顯示我想要的結果嗎? 「如果他們是角色屬性等於管理員的用戶,他們會得到一些文本和登錄鏈接,如果他們只是一個用戶,他們將獲得登錄鏈接,如果他們沒有登錄,他們將獲得註冊和登錄鏈接。
謝謝!
看着這讓我真的很感激哈姆。 :) – jerhinesmith 2010-01-21 17:49:53
我一直在寫'erb',但從來沒有意識到這是多麼醜陋,直到我看到這一點。我現在感謝你的反應 – Hanmaslah 2017-01-12 18:05:08