Chỉ cần lưu ý nhanh. Tôi muốn tìm hiểu xem người dùng quản trị đã đăng nhập chưa và nếu có cung cấp một số liên kết hữu ích & thông tin trên trang xem công khai, vì vậy quản trị viên có thể nhanh chóng chuyển đến phần quản trị để chỉnh sửa tài nguyên.
Tuy nhiên nếu bạn tạo người dùng của mình làm Người dùng quản trị viên (làm theo hướng dẫn bắt đầu cho ActiveAdmin) thì phương pháp user_signed_in? và current_user là admin_user_signed_in? và current_admin_user.
Vì vậy, ví dụ như trong một cái nhìn nào để hiển thị một bài (views/bài viết/show.html.erb) Tôi có thể sử dụng (giản thể cho rõ ràng)
<div id='show_post_<%= @post.id %>'>
<h2><%= @post.title %></h2>
<div class='post_author'>by: <%= @post.author%></div>
<% if admin_user_signed_in? %>
<div class='admin_links'>Put links to admin pages for:
<%= current_admin_user.email %>
</div>
<% end %>
<div class='post_body'>
<%= raw @post.content %>
</div>
</div>
Tôi hy vọng rằng các tên phương pháp sẽ được tạo dựa trên bất kỳ thứ gì bạn đã sử dụng khi thiết lập người dùng trong ActiveAdmin hoặc Devise (nếu bạn đặt tên người dùng mẫu Vip của mình thì phương pháp sẽ là vip_signed_in?).
Nếu câu hỏi này vẫn hoạt động, Devise giờ đây luôn tải current_user cho bạn bất kể sử dụng authenticate_user! trước khi lọc hay không. – zykadelic