我最近将一个应用程序升级到了 Rails 3.2.2。
我正在使用 Factory_girl
Factory.sequence :name do |n| “名称-#{n}”结束
Factory.define :用户做 |u| u.first_name{ Factory.next(:name) }
u.last_name { |u| 'last_' + u.first_name } u.password '秘密'
u.password_confirmation { |u| u.password } u.sequence(:email) { |i|
“user_#{i}@example.com” }
end
和这个简单的测试
指定 { Factory.build(:user).should be_valid }
生成以下警告
弃用警告:您正在尝试创建属性user_id'.
Writing arbitrary attributes on a model is deprecated. Please just use
attr_writer` 等(从块(2 层)中调用)
在...
我怎样才能摆脱它?
这可能是因为您尚未使用更新的列定义准备/迁移测试数据库,因此它认为您正在尝试任意设置属性。
Run rake db:test:prepare
以确保它已更新。
这是源代码 http://rails.documentation.codyrobbins.com/3.2.2.rc1/classes/ActiveRecord/AttributeMethods/Write.html该方法中,您可以看到 Rails 首先检查列或属性,然后在未找到时发出警告。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)