我有一個用戶資源,並且我只想在該用戶登錄時才顯示show.html.erb文件中的「編輯」鏈接。請參閱屏幕截圖。僅當該用戶登錄時才顯示編輯用戶鏈接
這是用戶的列表。在右上角注意,羅傑·斯特林登錄。
但如果我點擊唐德雷珀,該show.html.erb文件顯示「編輯」按鈕。在這種情況下,我只想讓羅傑斯特林出現。
我使用Devise進行身份驗證。任何想法如何實現這一目標?如果您需要查看任何可用的代碼,請告知我們。
我有一個用戶資源,並且我只想在該用戶登錄時才顯示show.html.erb文件中的「編輯」鏈接。請參閱屏幕截圖。僅當該用戶登錄時才顯示編輯用戶鏈接
這是用戶的列表。在右上角注意,羅傑·斯特林登錄。
但如果我點擊唐德雷珀,該show.html.erb文件顯示「編輯」按鈕。在這種情況下,我只想讓羅傑斯特林出現。
我使用Devise進行身份驗證。任何想法如何實現這一目標?如果您需要查看任何可用的代碼,請告知我們。
哈。好,我知道了。
這裏是在show.html.erb文件的循環:
<% if (@user.name == current_user.name) %>
<%= link_to 'Edit', edit_user_registration_path(@user) %>
<% end %>
和輔助方法:
def correct_user
user == current_user
end
感謝在正確的方向推!
您可以檢查current_user和顯示的用戶,如果它們相同,則會顯示「編輯」鏈接。您可以定義一個輔助方法是這樣的:
def correct_user?(user)
user == current_user
end
在你的節目UsersController的行動將有:
def show
@user = User.find(params[:id])
...
end
,並在您看來,您可以檢查:
<% if correct_user?(@user) %>
<%= link_to 'Edit', @user %>
<% end %>
嗯。當我嘗試這個時,我得到一個錯誤:「未定義的方法'correct_user?'」。對不起,我是Rails的新手。你提供的是什麼或者什麼?我仍然不確定如何識別登錄的用戶和正確的用戶。 –
你在哪裏定義'correct_user?'方法?它應該放在'users_helper.rb'中,並且你有一個名爲'current_user'的方法嗎?你正在使用哪種認證系統,或者你自己創建了哪一個? – Thanh