我有一个搜索框,我只想通过application.html.erb文件中的导航部分在特定页面上呈现。
如何设置例外?这是通过主应用程序控制器完成的吗?
答案 0 :(得分:2)
有几种方法可以做到这一点。
最明显的方法是使用实例变量进行标记。
在application.html.erb
<%= render 'search' if @search_box %>
无论您想在何处显示搜索,请将标志实例变量设置为true。
def show
@search_box = true
...
end
修改
如果您想要多个操作来显示搜索,您可能还想在控制器中使用Rails过滤器。
before_action :flag_search_box, :only => [:show, :new, :all_kinds_of_controller_actions_where_i_wanna_show_search]
...
private
def flag_search_box
@search_box = true
end
答案 1 :(得分:0)
我可能会建议不要将搜索框放在application.html页面中,而是放在您想要渲染的单独html页面中。您可以将搜索设置为部分,以便只需一行代码即可从其他页面访问它。