通过application.html.erb文件在特定页面上呈现?

时间:2013-09-04 17:48:35

标签: ruby-on-rails ruby erb

我有一个搜索框,我只想通过application.html.erb文件中的导航部分在特定页面上呈现。

如何设置例外?这是通过主应用程序控制器完成的吗?

2 个答案:

答案 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页面中。您可以将搜索设置为部分,以便只需一行代码即可从其他页面访问它。