我正在尝试在rails app中的默认application.rhtml中显示javascript反馈窗口小部件。它只会出现在分布在不同控制器上的页面子集中。
试图找出最佳方法。
一种想法是做这样的事情:
<%= render :partial => "layouts/feedback_tab" if @show_feedback_tab == true %>
然后在每个控制器的每个方法中设置@show_feedback_tab。这看起来过于复杂。我的第二个想法是,我可以将@show_feedback_tab默认设置为true,并将其设置为false,以用于我不想显示它的相关单个方法。但是全局变量似乎不正确,并且application_controller中的方法将不起作用(我认为),因为显示依赖于被调用的方法。
有什么想法?
答案 0 :(得分: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? %>