2012-04-27 6 views
1

が、私はそれらの間のone_to_one関係続編one_to_one関係は

表1を持つ2つのテーブル持って失敗:ユーザー - ユーザー関連の列があり 表2:Security_Option - Userテーブルを参照し、セキュリティ関連の列とUSER_IDを(持っています)user.rbにおいて

Iは同様security_option.rbで私が

one_to_one :security_option 

を有する

one_to_one :user 

私はsecurity_option作品にアクセスするユーザーオブジェクトを持っているが、私はSecurityOptionオブジェクトを持っており、ユーザーにアクセスしようとしたとき、私は、SQL例外

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

を取得すると、私はユーザーがsecurity_option_id列を追加できることを理解し、これで問題は解決しますが、セキュリティテーブルのuser_idでユーザーを取得することはできませんか?

答えて

2

one_to_oneはアソシエーションの片側で使用し、many_to_oneは反対側で使用する必要があります。外部キーを含むモデルはmany_to_oneを使用する必要があり、外部キーによって参照されるモデルはone_to_oneを使用する必要があります。 http://sequel.jeremyevans.net/rdoc/files/doc/association_basics_rdoc.htmlを参照してください。