Как ограничить пользователя от удаления поста, не принадлежащего ему? - PullRequest
1 голос
/ 07 марта 2019

Итак, я следую этому уроку https://medium.com/@deallen7/how-to-build-a-reddit-like-site-with-ruby-on-rails-7b6cd106463d и попал в ту часть, где я добавил это

before_filter :authenticate_user!, except: [:index, :show]

к моему контроллеру ссылок. Я использую самоцвет devise, и когда ни один пользователь не вошел в систему, я не могу уничтожить сообщение через View, но я могу. Является ли приведенный выше код устаревшим?

1 Ответ

1 голос
/ 07 марта 2019

Если вы продолжите читать в опубликованной вами ссылке новую версию, вы увидите, что она должна быть

before_action :authenticate_user!, except: [:index, :show]

Далее показывается, чтобы добавить это в ваше представление:

<% if link.user == current_user %>
    <td><%= link_to 'Edit', edit_link_path(link) %></td>
    <td><%= link_to 'Destroy', link, method: :delete, data: { confirm: 'Are you sure?' } %></td>
<% end %>

Однако имейте в виду, что без внутренних разрешений, опытный пользователь может взломать это. Хотя пример может быть хорошим базовым способом получить базовое представление о rails, есть много плохих практик, как писать код здесь. Я бы посоветовал поискать лучшие материалы для изучения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...