На всякий случай, если это кому-то пригодится, то, с чем я столкнулся при тестировании моего приложения, было то, что, хотя пользователи, которые не вошли в систему, не могли получить доступ к ограниченному контенту, после того как пользователь вошел в систему, они могли изменить URL-адрес надругой идентификатор пользователя, например,
/users/3
, и тогда будет отображаться домашняя страница этого пользователя.Таким образом, любой пользователь мог посмотреть на любого другого пользователя, что было не тем, что я хотел.
Чтобы обойти это, я изменил пользовательский контроллер для защиты от этого:
class UsersController < ApplicationController
#first call the correct_user function before allowing the show action to proceed
before_filter :correct_user, only: [:show]
...
def show
#do whatever here
end
...
private
def correct_user
@user = User.find(params[:id])
redirect_to(root_path) unless current_user?(@user)
end