2016-05-23 12 views
0

2つのRails/ActiveRecordクラス間の適切な関係を把握するのに問題があります。Railsオブジェクトbelongs_toとhas_oneの両方

私はスリップを作成し、同時に別の伝票の宛先になることができるユーザを持っています。各ユーザは、任意の数の伝票を作成することができるが、所与の伝票の宛先として1人のユーザのみを作成することができる。

dbの観点から、私は 'user_id'(著者)と 'addressee'の2つの整数(キー)列をテーブルに持ち、usersテーブルは参照しません。

これはまったく機能していない私の現在のアプローチです:

class User < ApplicationRecord 
    has_many :slips 
    belongs_to :slips, :foreign_key => 'addressee' 
end 

class Slip < ApplicationRecord 
    belongs_to :user 
    has_one :addressee, :through => :user 
end 

これらのオブジェクトを結合する適切な方法を私に指示してください。 ありがとう、素敵な一日を!あなたはおそらくhas_and_belongs_to_many探しているhttp://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

:ここmany to many関係で

答えて

1

それは、この(1秒だけの「スリップ」と呼ばれることができるが、私は混乱を避けるために、それはaddressor_slip 'と呼ばれるてきた)のようなものになります。あなたはまた、ユーザからの関連付けを作成することができ

class User < ApplicationRecord 
    has_many :slips 
    has_one :addressor_slip, :class_name=> 'Slip', :foreign_key => 'addressee' 
end 

class Slip < ApplicationRecord 
    belongs_to :user 
    belongs_to :addressee, :class_name=> 'User', :foreign_key => 'addressee' 
end 

をユーザーに:addressor_slip

関連する問題