如何解决即使输入数据,Rails验证也会失败
| 这是我在Rails Console中执行的命令:Person.create!(:firstName=>\"matt\",:lastName=>\"master\",:gender => 1)
我的结果是此错误消息:
ActiveRecord::RecordInvalid: Validation failed: Firstname can\'t be blank
我的模型验证代码如下所示:
class Person < ActiveRecord::Base
belongs_to :user,:class_name => \'User\',:foreign_key => \'fk_ssmUserId\'
validates_presence_of :firstName,:lastName
当我注释掉“ 3”时,一切正常,并且我的数据已正确输入到数据库中,因此我知道这些值实际上已传递到新对象中。我什至检查了在Rails :: ActiveRecord :: Validations代码中创建的新对象,以确保在保存之前正确地实例化了该对象。它是。另外,我还有其他带有validates_presence_of的模型,每次都能100%正常工作。就是这个模型。我正在使用Rails 3.1.0.rc1。
有任何想法吗?
谢谢!
解决方法
:firstName=>\"matt\",:lastName=>\"master\",:gender => 1
检查键是否与您的模型列相对应。似乎一切都应该很好。
,我怀疑该错误与您正在使用.create创建和保存对象的事实有关!控制台中的方法。您的Person类似乎需要外键,当您在控制台上创建对象时,该值可能未实例化。要对此进行测试,请尝试键入:
test = Person.create(:firstName=>\"matt\",:gender => 1)
.create方法之后没有爆炸。这不会产生错误。现在输入:
test
您很有可能已将必需的键值设置为\“ nil \”,并且除非您填写适当的值,否则无法从控制台保存该对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。