2016-08-10 4 views
0

Ich entwickle eine Online-Kurs-Website mit Ruby on Rails und Bootstrap. Ich habe ein Modell für Kurse und ein Modell für Lektionen. In der Unterrichtskontrollansicht zeige ich nicht nur die Unterrichtsseite mit Video, Diskussion und Notizen, sondern auch eine Liste aller zum Kurs gehörenden Lektionen. Dies geschieht durch:Schienen, wenn aktuelle ID

<%= @lessons.each do |lesson| %> 
    <%= link_to [lesson.course, lesson] do %> 
    <%= lesson.title %> 
    <% end %> 
<% end %> 

Der Benutzer kann aus der einzelnen Lektion Seite, die nächste Lektion holen zu beobachten.

Frage:

Die URL generiert wird: localhost: 3000/Kurse/1/Lektionen/2 (Ich werde dies mit Juwel Freundlich Id später ändern). Ich möchte in der Liste aller Lektionen auf der individuellen Lektionsseite zeigen, welche Lektion der Benutzer gerade anschaut. Also im Grunde vielleicht etwas sagen "Sie sehen gerade: Lektion mit ID 2" und haben es in einer anderen Hintergrundfarbe mit einigen benutzerdefinierten HTML. Wie kann ich verschiedene HTML- und CSS-Inhalte für die aktuell angesehene Lektion in der All-Lions-Liste haben?

Vielen Dank im Voraus!

/Jacob

+0

in Ihrer Lektion Controller Show-Ansicht können Sie eine Sitzung gesetzt speichern lession id beobachten, dann können Sie es vergleichen mit der ID von lessions in Liste html zu ändern, CSS. – Thanh

Antwort

2

Eine einfache Art und Weise eine bedingte, in dem Fall, dass Sie die aktuelle Lektion in einer lokalen Variablen oder Methode current_lesson zur Verfügung haben hinzuzufügen wäre. Dann kann es wie folgt aussehen:

<%= @lessons.each do |lesson| %> 
    <% if lesson.id == current_lesson.id %> 
    ... other html ... 
    <% else %> 
    <%= link_to [lesson.course, lesson] do %> 
     <%= lesson.title %> 
    <% end %> 
    <% end %> 
<% end %> 
+0

Hallo! Danke, scheint eine gute Lösung zu sein, ich dachte schon mal darüber nach. Das Problem für mich (ich bin neu mit Rails) scheint zu sein, die Methode für current_lesson in meinem Application Controller zu definieren. – jacobrubyonrails

+0

'def current_lesson; Lektion.find (params [: ...]); Ende; helper_method: current_lesson' – slowjack2k

+0

danke slowjack2k! – jacobrubyonrails