esp*_*net 136 ruby-on-rails database-relations associations has-one
在这个例子中,我创建了一个user没有profile,然后在profile为该用户创建一个.我尝试使用带有has_one关联的构建,但是爆炸了.我看到这个工作的唯一方法是使用has_many.本user应该只有最多只能有一个profile.
我一直在尝试这个.我有:
class User < ActiveRecord::Base
has_one :profile
end
class Profile < ActiveRecord::Base
belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)
但当我这样做时:
user.build_profile
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'profiles.user_id' in 'where clause': SELECT * FROM `profiles` WHERE (`profiles`.user_id = 4) LIMIT 1
Run Code Online (Sandbox Code Playgroud)
在rails中有一种方法可以有0或1个关联吗?
Har*_*tty 351
该build方法的签名是不同 has_one和has_many关联.
class User < ActiveRecord::Base
has_one :profile
has_many :messages
end
Run Code Online (Sandbox Code Playgroud)
has_many关联的构建语法:
user.messages.build
Run Code Online (Sandbox Code Playgroud)
has_one关联的构建语法:
user.build_profile # this will work
user.profile.build # this will throw error
Run Code Online (Sandbox Code Playgroud)
阅读has_one关联文档以获取更多详细信息.
| 归档时间: |
|
| 查看次数: |
74885 次 |
| 最近记录: |