MichaelHartlRailsチュートリアルを終了しました。自分で何かを作ろうとしています。
作成しようとしている関係をレールに理解させるのに問題があります。これをできるだけ単純化するようにします。枝、小枝、葉のある木は適切ですが...
例として親子フォーマットを使用します。だから当然私にはユーザーがいて、ユーザーが家族を作ったとしましょう。
それで:
Class User < ActiveRecord::Base
has_many :families
has_many :parents
has_many :children
end
Class Family < ActiveRecord::Base
belongs_to :user
has_many :parents
end
Class Parent < ActiveRecord::Base
belongs_to: :user
belongs_to: :family
has_many: :children
end
Class Child < ActiveRecord::Base
belongs_to :user
belongs_to :parent
end
ご覧のように、私は子供が家族に属する親に属していることを望んでいますが、子供自体は親を介さない限り家族に属していません。これが比喩ではなかった場合は悲しいですが、この特定のケースでは真実です。;)
私は親の下で試しました:
has_many :children, through: :parent
と
has_many :children, through: :family
しかし、それはうまくいきませんでした。
私が使おうとすると:
User.family.new
また
User.child.new
...メソッドが存在しないと表示されます。私はそれが関係を理解していないことを意味すると解釈します。
私は何が間違っているのですか?
関連する場合、現時点では、ファミリ、親、子のテーブルで唯一のものは次の列です。
t.string :content
t.integer :user_id