Rails 测试错误,NameError:未初始化的常量 User::FILL_IN

波蓬加

我目前正在学习 Ruby on Rails on Rails 教程。

我做了rails测试,然后得到了这个错误。

错误日志

UsersSignupTest#test_valid_signup_information_with_account_activation:
NameError: uninitialized constant User::FILL_IN
    app/models/user.rb:42:in `activate'
    app/controllers/account_activations_controller.rb:6:in `edit'
    test/integration/users_signup_test.rb:39:in `block in <class:UsersSignupTest>'

我不明白这个错误的含义。我可能必须初始化constant User::FILL_IN

应用程序/模型/user.rb

class User < ApplicationRecord
  attr_accessor :remember_token, :activation_token
  before_save :downcase_email
  before_create :create_activation_digest

....

def activate
  update_columns(activated:FILL_IN, activated_at:FILL_IN)
end

应用程序/控制器/account_activations_controller.rb

class AccountActivationsController < ApplicationController

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

测试/集成/users_signup_test.rb

require 'test_helper'

class UsersSignupTest < ActionDispatch::IntegrationTest

...

 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

你能帮我解决这个问题吗?

哈希火箭

你不应该实际使用这些词FILL_IN您应该更改FILL_IN使测试通过所需的任何内容。你可能需要这样的东西:

update_columns(activated: true, activated_at: Time.now)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

NameError:未初始化的常量(rails)

Ruby on Rails 5未初始化的常量ApplicationRecord(NameError)

Rails:NameError(未初始化的常量UserSerializer)

Rails:NameError:未初始化的常量Bootsnap :: CompileCache :: ISeq

rails 未初始化的常量 Class::News (NameError)

Rspec / Rails:未初始化的常量ActiveSupport :: Autoload(NameError)

Rails / Factory Girl:未初始化的常量FactoryGirl(NameError)

与Rails相关的模型以“ NameError未初始化的常量”退出

未初始化的常量User :: Post(NameError)

为什么使用 NameError 创建新资源错误(未初始化的常量 Thing::user)?

Rails的路由错误-未初始化的常量SubscribersController

Rails-Sidekiq错误未初始化的常量

Rails未初始化的常量名称错误

Rails:路由错误未初始化的常量 RegistrationsController

Rails显示错误“未初始化的常量URI :: Generic”

Ruby on Rails“未初始化的常量”错误

名称错误“未初始化的常量”ruby on rails

foundation-gem heroku rails引擎未初始化的常量Foundation :: Rails :: ApplicationController(NameError)

未初始化的常量ActiveSupport :: EventedFileUpdateChecker(NameError)-[learn-ruby-on-rails]教程

Rails 6升级中未初始化的常量ActiveRecord :: ConnectionAdapters :: ConnectionManagement(NameError)

Rails:配置邮件程序时未初始化的常量仓库(NameError)

为 rails 应用程序使用 recaptcha gem 时未初始化的常量 Recaptcha (NameError)

生产中的Rails控制台:NameError:未初始化的常量

NameError:在 Rails 5.1.4 上使用 Shrine 2.8 时未初始化的常量 Plaqueorder::ShrineImageUploader

has_many中的Rails NameError未初始化常量:through关系

Rails + RSpec-不需要规范/支持文件;给出“未初始化的常量(NameError)”

NameError(未初始化的常量Unzipper :: Zip),但仅在Heroku部署上(Rails)

Paper_trail和Rails_Admin:NameError-未初始化的常量版本

Rails:Grape API-NameError:未初始化的常量API