续集one_to_one两个表之间的关系失败

时间:2012-04-27 17:16:42

标签: ruby sqlite sequel

我有两个表,它们之间有一个_to_one关系

表一:用户 - 具有用户相关列 表2:Security_Option - 具有安全相关的列和user_id(引用User表)

在user.rb中我有

one_to_one :security_option

同样在security_option.rb中我有

one_to_one :user

当我有一个访问security_option的User对象时,但当我有SecurityOption对象并尝试访问用户时,我得到一个sql异常

Sequel::DatabaseError: SQLite3::SQLException: no such column: users.security_option_id

据我所知,我可以在用户中添加security_option_id列,这样可以解决问题但是不应该通过安全表中的user_id来获取用户吗?

1 个答案:

答案 0 :(得分:2)

one_to_one应该在关联的一侧使用,而many_to_one应该在另一侧使用。包含外键的模型应使用many_to_one,外键引用的模型应使用one_to_one。请参阅http://sequel.jeremyevans.net/rdoc/files/doc/association_basics_rdoc.html