2009-04-28 8 views
0

私はデフォルトのapplication.rhtmlで、レールアプリでjavascriptのフィードバックウィジェットを表示しようとしています。これは、異なるコントローラ間で分散されたページのサブセットにのみ表示されます。アプリケーションレイアウトでコントローラとメソッドで異なるコンテンツを表示する方法は?

これを行う最善の方法を見つけようとしています。すべてのコントローラ内のすべての方法で

<%= render :partial => "layouts/feedback_tab" if @show_feedback_tab == true %> 

してから設定@show_feedback_tab:

一つの考えは、このような何かをすることでした。これはあまりにも複雑です。私の2番目の考えは、@show_feedback_tabをtrueに設定し、それを表示したくない関連する個々のメソッドに対してfalseに設定できるということでした。グローバル変数は正しく見えませんし、application_controllerのメソッドは表示されているメソッドに依存しているため、動作しません。

どのような考えですか?

def show_feedback_tab? 
    if params[:controller] == :user && params[:action] == :index 
    return true 
    end 
    ... 
    or put here any other logic 
    ... 
    false 
end 

をして(application_controller.rbで)ヘルパー・メソッドとして追加:

答えて

1

あなたはapplication_controller.rb方法を書くことができます

helper_method :show_feedback_tab? 

は、あなたがこのようなビューでそれを使用することができます:

<%= render :partial => "layouts/feedback_tab" if show_feedback_tab? %> 
+0

完璧、ありがとう! – kareem

関連する問題