2014-06-28 156 views
0

所以我試圖隱藏從普通用戶的一些東西: 助手:無法看到的管理員帳戶可見的管理員聯繫

def admin 
    User.find(:all, :conditions => { :email => ["[email protected]"] }) 
end 

查看:

<% if @active_user == admin %> 
    <td><%= link_to raw('<i class="icon-pencil icon-white"></i>'), edit_quiz_path(quiz), :class => 'btn btn-info' %></td> 
    <td><%= link_to raw('<i class="icon-trash icon-white"></i>'), quiz, method: :delete, data: { confirm: 'Pewien?' }, :class => 'btn btn-danger' %></td> 
<% end %> 

最後,我登錄我的管理員帳戶(電子郵件[email protected])並沒有顯示任何內容。

我使用的正常功能在DB找到用戶?

+0

我想'找到(:全部,...)'會返回一個數組?只是:'.first'並嘗試? – Surya

+0

我試過了,但它不工作... – djilt

+0

你試試:'User.find(:全部:條件=> {:電子郵件=> [ 「[email protected]」]})。first'?那麼'@active_user'的價值是什麼? – Surya

回答

0

你可以重寫這樣的輔助方法,所以它會檢查用戶是管理員沒有做查詢到DB:

def admin?(user) 
    user.present? && user.email == '[email protected]' 
end 

更妙的是,在User類創建方法admin?

+1

點current_user',那麼就不必在所有發送'user'對象。它可以是:'self.present? && self.email ==「管理員@ admin.com'' – Surya

+0

但是,當我嘗試調用例如user.email ==‘管理@管理員’或user.admin ==真我得到了一個未定義的方法‘電子郵件’ – djilt

0

我改變@current_user == admincurrent_user.admin?,突然一切工作。所以最後這是錯誤的觀點。