我在论坛上搜索了这个问题,并在spork网站上使用了一个解决方案,从规范选项中删除“--drb”,让它加载并运行,但这个持久性错误仍然不断弹出。我也没有spork运行它。我已经提前读了一堆rspec信息,并且通过spork信息进行了挖掘,但还没有。我还检查了拼写错误,缩进,编码等问题,但我仍处于亏损状态。其他问题,我已经能够解决,但这一个让我。如果有人提出建议,请在下面填写:
故障:
1)用户密码加密has_password?如果密码不匹配,则方法应为false 失败/错误:@ user = User.create!(@ attr) ActiveRecord的:: UnknownAttributeError: 未知属性:密码 #./spec/models/user_spec.rb:94:in'块(3级)in'
以0.836秒完成 1例,1次失败 < - Slave(1)运行完毕!
答案 0 :(得分:8)
您确定已添加:密码作为用户模型的虚拟属性吗?这很容易错过,但您需要包含该行
attr_accessor :password
答案 1 :(得分:0)
这可能在问题被提出的时间(2011年)和现在之间发生了变化,但我最初遇到了同样的问题 - 我添加了所有密码等测试,而用户初始化本身就是用“未知属性:密码”全面失败。
从表面上看,GrahamJRoy的答案(更重要的是,随后的阐述评论)完美地解决了我的困惑。
然而,我继续阅读本教程的下一部分,并了解到User模型中的以下行意味着同样的事情:
has_secure_password
一旦我添加了这个,我就不再需要显式的attr_accessor声明了:
attr_accessor :password, :password_confirmation
我对此教程的唯一抱怨是Michael没有警告您,如果您在教程首次向您显示时将:password和:password_confirmation添加到User.new(),则所有用户引用都将开始失败更新的构造函数。我期待只有新测试失败,认为我偏离轨道,并在继续教程之前在其他地方(例如这里)搜索解决方案。
答案 2 :(得分:0)
务必在attr_accessible
attr_accessor
更改为models/user.rb
我犯了同样的错误而忽略了它。