2016-04-04 15 views
0

Das ist, was ich achive wollen:has_many durch belongs_to mit einem has_many

class Foo 
    belongs_to :bar 
    has_many :foos, trough: :bar, class_name: 'Foo' 
end 

class Bar 
    has_many :Foo 
end 

Ist dies möglich, ohne jointable? Ich habe versucht, verschiedene Kombinationen von class_name und Source-Optionen zu der has_many durch, aber bisher keinen Erfolg. Entweder bleibe ich an einer Quelle hängen, die nicht gefunden wurde - obwohl sie bereitgestellt wurde, oder ich lande in einem mysteriösen No block given Fehler. Auch versucht, von :bar zu :foo zu delegieren.

Maingoal: Foo.first.foos als Beziehung

Vielleicht hat jemand mich, ob seine noch möglich aufklären kann, wenn ja: wie?

freundlichen Grüßen

+0

Sie benötigen Datensätze wie folgt: Class_A.first.Class_B.Class_As ?? – Thorin

+0

Welches Problem versuchen Sie zu lösen? – devanand

+0

Ich bin mir nicht sicher, warum Sie das brauchen, Sie können diese Details einfach von a.b.a bekommen oder einfach einen Bereich oder eine Methode erstellen – Thorin

Antwort

2

source gut funktioniert.

class Foo < ActiveRecord::Base 
    belongs_to :bar 
    has_many :placeholder, through: :bar, source: :foo 
end 

class Bar < ActiveRecord::Base 
    has_many :foo 
end 

Welche Rails-Version verwenden Sie?

+0

aktualisierte meine Frage mit klareren Klassennamen. Leider funktioniert es nicht mit der Quelle, es klagt mit 'Kein Block gegeben' –