`post_via_redirect` устарела и будет удалена в Rails 5.1.

Я просматриваю учебник по Rails и к главе 8 при запуске теста bin/rails получаю следующее сообщение:

 DEPRECATION WARNING: `post_via_redirect` is deprecated and will be removed in Rails 5.1. Please use follow_redirect! manually after the request call for the same behavior.

Код, генерирующий это сообщение, находится на test/integration/user_signup_test.rb:

      test "valid signup information" do
        get signup_path
        assert_difference 'User.count', 1 do
          post_via_redirect users_path, user: { name:  "Example User",
                                        email: "[email protected]",
                                        password:              "password",
                                        password_confirmation: "password" }
        end
        assert_template 'users/show'
      end

Как это исправить?


person Jonathan Soifer    schedule 23.03.2016    source источник


Ответы (1)


Фиксированный код

test "valid signup information" do
  get signup_path
  assert_difference 'User.count', 1 do
    post users_path, params: { user: { name:  "Example User",
                                        email: "[email protected]",
                                        password:              "password",
                                        password_confirmation: "password" } } 
    follow_redirect!
  end
  assert_template 'users/show'
end

ПРИМЕЧАНИЕ: я также добавил хэш params, как было предложено в Rails 5.

person Jonathan Soifer    schedule 14.04.2016