1

私の 内でapplication.html.erb、現在レンダリングしているページがマウントされたエンジン (それが重要な場合は Forem) 内からのものであるかどうかを検出できるようにしactiveて、ナビゲーション バーにクラスを追加できるようにしたいと考えています。これを検出する簡単な方法はありますか?

Rails 3.2 を使用しています。

4

3 に答える 3

6

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

于 2013-09-26T12:46:14.940 に答える