私の 内でapplication.html.erb、現在レンダリングしているページがマウントされたエンジン (それが重要な場合は Forem) 内からのものであるかどうかを検出できるようにしactiveて、ナビゲーション バーにクラスを追加できるようにしたいと考えています。これを検出する簡単な方法はありますか?
Rails 3.2 を使用しています。
私の 内でapplication.html.erb、現在レンダリングしているページがマウントされたエンジン (それが重要な場合は Forem) 内からのものであるかどうかを検出できるようにしactiveて、ナビゲーション バーにクラスを追加できるようにしたいと考えています。これを検出する簡単な方法はありますか?
Rails 3.2 を使用しています。
Forem::ApplicationControllerクラスを再度開くことで、ヘルパー メソッドを追加できます。
Forem::ApplicationController.class_eval do
def forem?
true
end
helper_method :forem?
end
app/decorators/forem/application_controller_decorator.rbたとえば、上記のファイルを追加します。
このようにして、ビューが Forem のコントローラーによってレンダリングされるたびに、forem?ビュー内で呼び出すことができます。
application.html.erb
<% if forem? %>
# do something
<% end %>
最初に現在のインスタンスかどうかを確認するか、独自の を返すメソッドrespond_to?(:forem?)を追加することをお勧めします。forem?falseapplication_controller.rb