3

我正在阅读 Michael Hartl 的 Ruby on Rails 教程,并且正在为用户建模。User_spec.rb 测试失败,我对错误的解读是,由于某种原因,这些属性没有被读取为可访问的,尽管代码说它们应该是。我也完成了 rake db:test:prepare 。任何帮助将不胜感激。

用户模型很简单。

应用程序/模型/user.rb

class User < ActiveRecord::Base
  attr_accessible :name, :email

end

在 spec/models/user_spec.rb 的测试是这样的:

require 'spec_helper'

describe User do

    before { @user = User.new(user: "Example User", email: "user@example.com") }

    subject { @user }

    it { should respond_to(:name) }
    it { should respond_to(:email) }

end
4

2 回答 2

3

应该name不是user...请检查以下内容

require 'spec_helper'

describe User do

  before { @user = User.new(name: "Example User", email: "user@example.com") }

  subject { @user }

  it { should respond_to(:name) }
  it { should respond_to(:email) }
end

Example User您在使用for创建新记录时犯了错误user。应该是name

于 2013-03-26T14:55:48.513 回答
2

您想通过批量分配更新的任何内容都需要在您的attr_accessible.

改变这个

class User < ActiveRecord::Base
  attr_accessible :name, :email

end

对此:

class User < ActiveRecord::Base
  attr_accessible :name, :email, :user

end

虽然user看起来不像是正确的属性名称。也许应该是username

于 2013-03-26T14:53:31.910 回答