Я пытаюсь сделать следующее: У меня есть страница, которая фильтрует записи пользователей:Блокировать доступ к ссылке - Может Может Рельсы
это мой контроллер:
def index
if current_user.role? "producer"
@ search = Victim.joins (: producer). where (: producers => {: email => current_user.email}.) search (params [: search])
@ @ search.paginate victims = (: page => params [: page],: per_page => 10)
elsif
@ search = Victim.search (params [: search])
@ @ search.paginate victims = (: page => params [: page],: per_page => 10)
end
end
он может фильтровать индексные записи, относящиеся только к текущему пользователю. , но если текущий пользователь вводит идентификатор записи в навигационном режиме, он может видеть данные записи, которая не содержит электронной почты текущего пользователя. хотел бы знать, как обойти этот доступ и позволить текущему пользователю получить доступ к странице «показать» только запись, содержащую ваше электронное письмо, как это было сделано в «индексе».
Я любой, кто может помочь!
выглядит следующим образом: У меня есть таблица «жертва», и она содержит поле «branch_id» («model - victim» = belongs_to: branch) У меня также есть таблица " ветвь ", которая содержит поле« email » , у текущего пользователя есть тот же адрес электронной почты, что и« ветвь »... Итак, я хотел бы сделать: открыть« показ »« жертвы ». .email равно «current_user.email», если не было отказано в доступе. попытался больше не работать: '@branch = Branch.find (params [: id]) @branches = Victim.where (: branch_id => @branch .id) redirect_to 'index', если @ branch.email! = current_user.email' – user2701007
@ user2701007 Как это не сработало? Вы получили сообщение об ошибке или разрешили пользователям просматривать ветви, которые у них не были? Я обновил решение протоколирование, которое должно помочь в отладке это – lightswitch05
мне это сообщение появляется 'Обработка VictimsController # показать как HTML Параметры: {«ID»=>«973»} Завершено 500 Внутренняя ошибка сервера в 10мс ActiveRecord :: RecordNotFound (не удалось найти ветвь с id = 973): app/controllers/victim_controller.rb: 29: в 'show'' – user2701007