Учебник по Rails на Rails, ArgumentError - PullRequest
0 голосов
/ 18 февраля 2019

В настоящее время я изучаю учебник по Ruby on Rails on Rails.Когда я тестировал рельсы, я столкнулся с этой ошибкой.

log

ArgumentError: wrong number of arguments (given 2, expected 1)
    app/models/user.rb:35:in `authenticated?'
    app/controllers/account_activations_controller.rb:4:in `edit'
    test/integration/users_signup_test.rb:35:in `block in <class:UsersSignupTest>'

app / models / user.rb

def authenticated?(remember_token)
    return false if remember_digest.nil?
    BCrypt::Password.new(self.remember_digest).is_password?(remember_token)
end

app / controllers / account_activations_controller.rb

def edit
    user = User.find_by(email: params[:email])
    if user && !user.activated? && user.authenticated?(:activation, params[:id])
      user.update_attribute(:activated,    true)
      user.update_attribute(:activated_at, Time.zone.now)
      log_in user
      flash[:success] = "Account activated!"
      redirect_to user
    else
      flash[:danger] = "Invalid activation link"
      redirect_to root_url
    end

тест / интеграция / users_signup_test.rb


test "valid signup information with account activation" do
    get signup_path
    assert_difference 'User.count', 1 do
      post users_path, params: { user: { name:  "Example User",
                                         email: "user@example.com",
                                         password:              "password",
                                         password_confirmation: "password" } }
    end

    assert_equal 1, ActionMailer::Base.deliveries.size
    user = assigns(:user)
    assert_not user.activated?
    log_in_as(user)
    assert_not is_logged_in?
    get edit_account_activation_path("invalid token", email: user.email)
    assert_not is_logged_in?
    get edit_account_activation_path(user.activation_token, email: 'wrong')
    assert_not is_logged_in?
    get edit_account_activation_path(user.activation_token, email: user.email)
    assert user.reload.activated?
    follow_redirect!
    assert_template 'users/show'
    assert is_logged_in?
  end
end

Не могли бы вы дать мне совет, чтобы решить эту проблему?

1 Ответ

0 голосов
/ 18 февраля 2019

Похоже, вы указали дополнительный параметр для метода authenticated? во app/controllers/account_activations_controller.rb#edit второй строке.

Удалите его, и это должно сработать.

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