0

Rails アプリのデフォルトの application.rhtml に JavaScript フィードバック ウィジェットを表示しようとしています。異なるコントローラーに分散されたページのサブセットにのみ表示されます。

これを行うための最良の方法を見つけようとしています。

1つの考えは、次のようなことをすることでした:

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

次に、すべてのコントローラーのすべてのメソッドで @show_feedback_tab を設定します。これは非常に複雑に思えます。私の 2 番目の考えは、@show_feedback_tab をデフォルトで true にし、表示したくない関連する個々のメソッドに対して false に設定できるということでした。しかし、グローバル変数は正しくないようで、表示は呼び出されているメソッドに依存しているため、application_controller のメソッドは機能しません (私はそう思います)。

何かご意見は?

4

1 に答える 1

1

application_controller.rb にメソッドを記述できます。

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 内):

helper_method :show_feedback_tab?

次に、次のようなビューで使用できます。

<%= render :partial => "layouts/feedback_tab"  if show_feedback_tab? %>
于 2009-04-28T20:19:11.893 に答える