[英]Rails 3, has_one belongs_to issues
我有一个名为User的模型:
has_one :etho
还有一个名为Etho的模型:
belongs_to :user
我在User中构建了create方法:
@user.build_etho
出于某种原因,当我登录时,我仍然可以创建超过1个etho! 用户应该只有1个etho,并且不能创建超过1个! 为什么这不起作用?
根据文档,我认为你误解了build_etho的作用
http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
“build_association(attributes = {})返回已使用属性实例化并通过外键链接到此对象但尚未保存的关联类型的新对象。”
也就是说,每次调用build_etho时,都会创建一个新的Etho对象(构建,即尚未保存在数据库中) - 用户将始终只链接到一个,可能是最后创建的,但调用build_etho不能保证只有一个是从您的User对象创建的!
你究竟想做什么?
您的参考id
列应该在您的users
表中,您可以确认吗?
这意味着您的用户迁移应该具备
t.references :ethos
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.