Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未定义的方法'first_name=';对于#用户_Ruby On Rails - Fatal编程技术网

Ruby on rails 未定义的方法'first_name=';对于#用户

Ruby on rails 未定义的方法'first_name=';对于#用户,ruby-on-rails,Ruby On Rails,我有一个模型: class User < ActiveRecord::Base attr_accessible :login, :password, :email, :first_name, :middle_name, :last_name, :phone end 尝

我有一个模型:

class User < ActiveRecord::Base
  attr_accessible :login,
                  :password,
                  :email,
                  :first_name,
                  :middle_name,
                  :last_name,
                  :phone

 end

尝试在文件test/functional/users\u controller\u test.rb中替换

require 'test_helper'

class UsersControllerTest < ActionController::TestCase
  setup do
    @user = create :user
  end
...
角色

setup do
  @user = create :user
end

或者更好:

let(:user) { create :user }

但是,如果选择最后一种方法,则必须在此文件中通过
user
重命名所有
@user
,并验证您的场景没有使用
user
局部变量。如果您还不清楚这一点,请坚持使用
之前的
技术。

尝试使用最新的迁移更新您的测试数据库(如果您还没有这样做)。rake db:test:load从当前db/schema.rb重新创建测试数据库

rake db:test:load
错误“未定义#的方法`attribute='”似乎您忘记了在测试环境中迁移数据库。快跑

RAILS_ENV=test rake db:migrate

对我来说,first_name是模型中的新属性,但我忘记了在测试环境中迁移数据库。

我可能遗漏了一些东西,为什么已经有两张反对票?
let(:user) { create :user }
rake db:test:load
RAILS_ENV=test rake db:migrate