【问题标题】:sequel one_to_one relation between two tables fails两个表之间的sequel one_to_one 关系失败
【发布时间】:2014-07-27 05:19:27
【问题描述】:

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

表一:用户 - 有用户相关的列 表二: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

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

【问题讨论】:

    标签: ruby sqlite sequel


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-27
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-03
      • 2020-09-14
      • 2011-06-08
      相关资源
      最近更新 更多