【问题标题】:Mysql2::Error: Column 'encrypted_password' cannot be nullMysql2::Error: 列 'encrypted_pa​​ssword' 不能为空
【发布时间】:2020-05-19 15:29:31
【问题描述】:

Rails 5,红宝石 2.4.0 错误:运行 rails test 时的 rails

Mysql2::Error: Column 'encrypted_password' cannot be null

我的测试:utilities_controller_test.rb

require 'test_helper'

class UsersControllerTest < ActionDispatch::IntegrationTest
  test "Has first name vidur" do
    get users_update_address_url
    assert_equal "vidur", users(:regular).first_name
  end

end

我的夹具:users.yml

admin:
 id: 1
 first_name: admin
 last_name: tukaweb
 email: 'admin@email.com'
 encrypted_password: <% Devise::Encryptor.digest(User, 'password') %>

regular:
 id: 2
 first_name: vidur
 last_name: punj
 email: 'vidur.punj@hotmail.com'
 encrypted_password: <% Devise::Encryptor.digest(User, 'password') %>

【问题讨论】:

    标签: devise ruby-on-rails-5 yaml fixtures ruby-2.4


    【解决方案1】:

    您可能想要打印该 Ruby 代码的输出,而不是仅仅评估它,因此您需要将 ERB 分隔符从仅评估更改为输出。

    换句话说,改变

    &lt;% %&gt; 到 &lt;%= %&gt;

    所以在你的情况下:

    encrypted_password: &lt;%= Devise::Encryptor.digest(User, 'password') %&gt;

    【讨论】:

      猜你喜欢
      • 2019-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      相关资源
      最近更新 更多