1

我有两张表,它们之间有 one_to_one 关系

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

在 user.rb 我有

one_to_one :security_option

同样在 security_option.rb 我有

one_to_one :user

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

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

我知道我可以在 users 中添加一个 security_option_id 列,这将解决问题,但不应该可以通过 security 表中的 user_id 获取用户吗?

4

1 回答 1

2

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

于 2012-04-27T17:37:21.190 回答