Если у меня есть пользовательский объект и у пользователя есть один basicinfo. В пользовательском шоу действий у меня есть:Авторизовать связанный объект при использовании драгоценного камня pundit
def show
@user = User.find params[:id]
authorize @user
end
И в show.html.erb я должен показать basicinfo пользователя, такие как:
User name is: <%= @user.basicinfo.name %>
В этом случае я должен также санкционировать basicinfo в действии пользователя шоу?
def show
@user = User.find params[:id]
authorize @user
authorize @user.basicinfo, :show?
end
Спасибо за ваш ответ! – xnjiang
Второй avenu для вашей модели пользователя - разместить логику в контроллере. Pundit был предназначен для устранения такой утомительной работы, но по модели пользователя это не так просто. Я поддерживаю pundit для всех других моделей, в то время как в пользовательской модели я решаю, хочу ли я, чтобы контроллер удалял неавторизованных пользователей, или мне нужно фильтровать данные в представлении на основе фактического контекста. – Jerome