1

それらの間に1対1の関係がある2つのテーブルがあります

表 1: ユーザー - ユーザー関連の列があります 表 2: Security_Option - セキュリティ関連の列と user_id (ユーザー テーブルを参照する) があります

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 列を追加でき、それで問題が解決することは理解していますが、セキュリティ テーブルの 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 に答える