2016-08-10 9 views
0

Ruby on Railsとブートストラップを使用してオンラインコースサイトを開発しています。私はコースのモデルとレッスンのモデルを持っています。レッスンコントローラのショービューでは、ビデオ、ディスカッション、ノートのレッスンページだけでなく、コースに属するすべてのレッスンのリストも表示しています。これは次のように行われます。現在のIDの場合はレール

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

ユーザーは、個別のレッスンページから、次のレッスンを選択して見ることができます。

質問:

URLが生成されます。localhostを:3000 /コース/ 1 /レッスン/ 2(Iは後でフレンドリーのId宝石でこれを変更します)。私は、レッスンページにあるすべてのレッスンのリストに、レッスンが現在見ているレッスンを表示したいと思います。ですから、基本的には、「あなたは現在、ID 2のレッスンを見ています」と言って、カスタムhtmlで別の背景色にしていると言うことがあります。すべてのレッスンリストで、現在見ているレッスンに異なるHTMLとCSSを使用するにはどうすればよいですか?

ありがとうございます!

/ヤコブ

+0

を、あなたは、あなたがHTML、CSSを変更するには、リストにlessionsのIDとを比較することができ、lession IDを見て格納するためのセッションを設定することができます。 – Thanh

答えて

2

簡単な方法は、ローカル変数やメソッドcurrent_lessonで利用可能な現在のレッスンを持っている場合には、条件を追加することです。それは次のようになります。次に:レッスンコントローラショービューで

<%= @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

こんにちは!ありがとう、良い解決策のように思える、私は前にそれを考えた。私の問題は、私のアプリケーションコントローラでcurrent_lessonのメソッドを定義することにあるようです。 – jacobrubyonrails

+0

'def current_lesson; Lesson.find(params [:...]);終わり; helper_method:current_lesson' – slowjack2k

+0

thanksjack2kに感謝します! – jacobrubyonrails

関連する問題