Фактический вопрос упражнения: «Отправляя запрос PATCH непосредственно к пути пользователя, как показано в листинге 10.56, убедитесь, что атрибут admin не редактируется через Интернет. Чтобы убедиться, что ваш тест охватывает правильную вещь, вашПервым шагом должно быть добавление администратора в список разрешенных параметров в user_params, чтобы начальный тест был красным. "
Поэтому я поместил атрибут admin в мой хэш params, который разрешает определенные атрибуты в users_controller.rb:
def user_params
params.require(:user).permit(:admin, :name, :email, :password,
:password_confirmation) #params hash that permits specific attributes
end
И я запустил тест в users_controller_test.rb:
def setup
@user = users(:michael)
@other_user = users(:archer)
end
test "should not allow the admin attribute to be edited via the web" do
log_in_as(@other_user)
assert_not @other_user.admin?
patch user_path(@other_user), params: {
user: { password: @other_user.password,
password_confirmation: @other_user.password,
admin: true } } #it's true because the user is trying to send a patch request saying they are the admin now
assert_not @other_user.reload.admin?
end
Но мой тест по-прежнему становится зеленым, когда он должен стать красным.У кого-нибудь есть идеи, почему это может быть?Есть ли что-то еще в моем исходном коде, влияющее на этот тест?
Не перенес мои изменения в heroku из-за этой нерешенной проблемы, но если это вряд ли вызовет дальнейшие проблемы, я с удовольствием перенесу свои изменения, чтобы каждый могсм. мой исходный код.