2016-06-01 11 views
0

Ich habe Topic und Lesson Modelle. Ein Thema has_many Lektionen und eine Lektion gehören zu einem Thema.Schienen - Rendern teilweise bei Join Abfrage

In meinem topics_controller.rb Ich habe

@topics = Topic.all 

und ich verwende render @topics in der Indexansicht durch den Teil _topic.html.erb

Untill hier, alles ist in Ordnung.

Jetzt will ich in der home.html.erb eine Liste von Themen mit Unterricht machen, und verwenden Sie einen Teil (abweichend von _topic.html.erb) die HTML für diese Elemente zu machen.

In meinem static_pages_controller.rb ich habe:

def home 
    @available_lessons = Topic.joins(:lessons) 
end 

ich einen Teil _available_lesson.html.erb in den Ansichten erstellt/static_pages Ordner und dann in dem home.html.erb Datei stelle ich render @available_lessons.

Ich erwartete, das neue Teil zu bekommen, aber Rails behalten das alte _topic.html.erb.

Was mache ich falsch?

+0

geben Sie nur den vollständigen Pfad, 'teilweise Render: "available_lesson", Sammlung: @ available_lessons', bin ich mir nicht sicher über die Details, aber ich vermute Wenn Sie die Short-Hand-Syntax verwenden, erkennen Rails, dass Ihre '@ available_lessons' eine Sammlung von' Topic' ist, also wh y es automatisch nach '_topic.html.erb' suchen (nur raten, schau es dir an, um sicher zu gehen) – lusketeer

+0

es funktioniert, vielen Dank für die Antwort und für die Details. Wenn Sie eine richtige Antwort erstellen möchten, werde ich sie als die richtige markieren :) – davideghz

Antwort

0

geben nur den vollständigen Pfad

render partial: "available_lesson", collection: @available_lessons 

Ich bin über die Details nicht sicher, aber ich vermute, dass, wenn Sie die kurze Hand-Syntax verwenden, Schienen erkennen Ihre @available_lessons eine Sammlung von Topic ist, das ist, warum es automatisch nach _topic.html.erb suchen (nur raten, look it up, um sicher zu gehen)