Я использую Pundit для авторизации. Я хочу, чтобы профили моих пользователей были видны всем, поэтому в моем user_policy.rb у меня есть:
def show?
true # Anyone can view a show
end
В моих пользователях/show.html.erb кнопка «редактировать профиль» отображается только в том случае, если:
<% if policy(@user).update? %>
<!-- show edit button -->
<% end %>
Проблема в том, что когда я пытаюсь получить доступ к профилю и не вхожу в систему, Pundit ищет «пользователя»:
def update?
record == user || user.admin == true # Only user creator can update it
end
У меня есть ошибка, говорящая, что пользователь равен нулю, поэтому администратор не определен. Я хотел сделать это:
def update?
if user_signed_in?
record == user || user.admin == true # Only user creator can update it
else
false
end
end
но user_signed_in? является помощником по разработке, недоступным в Pundit. Есть ли эквивалент, который я мог бы использовать, или лучший способ сделать это?