0

Rails 5,ruby 2.4.0 错误:rails while running rails test

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') %>
4

1 回答 1

1

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

换句话说,改变

<% %><%= %>

所以在你的情况下:

encrypted_password: <%= Devise::Encryptor.digest(User, 'password') %>

于 2020-05-19T16:46:50.237 回答