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

标签 ruby-on-rails ruby erb

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

如何设置异常(exception)?这是通过主应用程序 Controller 完成的吗?

最佳答案

有几种方法可以做到这一点。

最明显的方法是使用实​​例变量进行标记。

在你的application.html.erb

<%= render 'search' if @search_box %>

在任何您想显示搜索的地方,将标志实例变量设置为 true。

def show
  @search_box = true
  ...
end

编辑

如果您想要多个操作来显示搜索,您可能还想在 Controller 中使用 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

关于ruby-on-rails - 通过 application.html.erb 文件在特定页面上呈现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18620574/

相关文章:

ruby-on-rails - rails : id field is nil when calling Model. 新

mysql - 一次查询 ActiveRecord 的记录和关系计算

javascript - 使用 webpacker 从 Rails Controller 渲染 js

ruby - 在 Ruby 中使用 ERB 类时删除模板中的空格

ruby-on-rails - 如何在 rails 4 中通过 AJAX 向表单添加附加字段?

ruby-on-rails - 更改 Omniauth 授权 URL

ruby-on-rails - 代理后面的 Rails3 应用程序

javascript - 在 ERB 中调用带参数的 ruby​​ 方法?

javascript - MixPanel Javascript on Rails 应用程序发送到路由 '/undefined'

ruby-on-rails - 如何在 activerecord 查询中使用多个 .join