Ruby on rails application.html.erb根据用户所在的页面呈现不同的部分

Ruby on rails application.html.erb根据用户所在的页面呈现不同的部分,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我想显示一个不同的标题菜单,这取决于用户所在的网站页面。因此,基本上在Rails的application.html.erb中,我想要如下内容: <% if "user is op page x" %> <%= render 'layouts/header1' %> <% else %> <%= render 'layouts/header2' %> <% end %> 但是,行需要是什么呢?也就是说,是否存在指定页面的Ra

我想显示一个不同的标题菜单,这取决于用户所在的网站页面。因此,基本上在Rails的application.html.erb中,我想要如下内容:

<% if "user is op page x" %>
  <%= render 'layouts/header1' %>
<% else %>
  <%= render 'layouts/header2' %>
<% end %>


但是,
行需要是什么呢?也就是说,是否存在指定页面的Rails方法?

这里要提到的几件事。1是,您仅将内容作为application.html.erb的替代布局放入布局中,这样您就可以为应用程序的一部分呈现完全不同的模板。例如,管理UI会有不同的布局

对于一个应用程序来说,更像是一个全局部分,我通常会在视图下创建partials文件夹:
app/views/partials
,并将
\u header1.html.erb
\u header2.html.erb
放在其中

现在,对于实际渲染它们,这就是控制器方法的用武之地

在您的视图中,将if语句更新为:

<% if controller_name == "the_controller" && action_name == "the_action" %>
  <%= render partial: "partials/header1" %>
<% else %>
  <%= render partial: "partials/header2" %>
<% end %>


只需根据需要更改控制器名称和操作名称值。如果您需要更具包容性(标题2应该用于多个操作或控制器),那么我建议您查看
内容,了解

这里要提到的几件事。1是,您仅将内容作为application.html.erb的替代布局放入布局中,这样您就可以为应用程序的一部分呈现完全不同的模板。例如,管理UI会有不同的布局

对于一个应用程序来说,更像是一个全局部分,我通常会在视图下创建partials文件夹:
app/views/partials
,并将
\u header1.html.erb
\u header2.html.erb
放在其中

现在,对于实际渲染它们,这就是控制器方法的用武之地

在您的视图中,将if语句更新为:

<% if controller_name == "the_controller" && action_name == "the_action" %>
  <%= render partial: "partials/header1" %>
<% else %>
  <%= render partial: "partials/header2" %>
<% end %>


只需根据需要更改控制器名称和操作名称值。如果您需要更具包容性(标题2应该用于多个操作或控制器),那么我建议您查看
内容您也可以查看
当前页面?(路由路径)

“%>

您也可以使用
当前页面(路线路径)

“%>