ruby - 两个表之间的后续one_to_one关系失败

标签 ruby sqlite sequel

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

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


我知道我可以在用户中添加一个security_option_id列,这将解决问题,但难道不能通过安全性表中的user_id来获取用户吗?

最佳答案

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

关于ruby - 两个表之间的后续one_to_one关系失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10355053/

相关文章:

ruby-on-rails - Rspec:测试在应该通过的时候没有通过

ruby-on-rails - 使用 Rails 预编译附加 Assets

ruby-on-rails - Rails 4.1 和 4.2 之间 ActiveRecord Setter 的区别?

如果没有返回行,iPhone SQLite 查询会崩溃

sql - SQLite:如何在准备好的语句中将变量插入字符串

ruby - 续集(Ruby),如何以安全的方式递增和使用数据库计数器?

ruby-on-rails - 该行代码中排序的是哪个关联?

java - Android:应用程序不断预填充 sqlite 数据库

ruby - Sequel 有 last_insert_id 方法吗?

mysql - Sequel Gem 可以通过 SSL 连接到 MySQL