Ruby on rails 为rails 3中的特定控制器和操作添加额外布局?

Ruby on rails 为rails 3中的特定控制器和操作添加额外布局?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,在我的application.html.erb中,我有一个标题部分。,我用render标记渲染了它 <%= render 'layouts/header' %> 它只是呈现部分下拉列表,所有其他布局(如页脚、页眉、正文)都将丢失。我只想将额外的下拉列表部分添加到某些操作和控制器 如何在Rails 3.2.13中实现这一点 我建议如下: <%= render 'layouts/dropdown' unless params[:controller] == "controller

在我的application.html.erb中,我有一个标题部分。,我用render标记渲染了它

<%= render 'layouts/header' %>
它只是呈现部分下拉列表,所有其他布局(如页脚、页眉、正文)都将丢失。我只想将额外的下拉列表部分添加到某些操作和控制器


如何在Rails 3.2.13中实现这一点

我建议如下:

<%= render 'layouts/dropdown' unless params[:controller] == "controller_to_avoid" %>

将渲染替换为以下内容:

 <%= render 'layouts/dropdown' unless @disable_dropdown %>
在控制器筛选器中调用此方法,您不希望在其中显示:

在第一种方法上方的控制器顶部写下:

before_filter :test_method
当您的请求到达此控制器时,它将自动调用


希望这会有帮助。谢谢

这给了我我在编辑中提到的同样的问题。这只是使下拉列表部分化,而不是另一个。那么还有另一个问题。该代码不会影响其他部分的渲染。对不起,我没有理解你。你是说我的代码中有另一个错误?我给出的答案不会阻止另一部分的渲染。您是否将其放入了
应用程序.html.erb
?还有
。是的,我把它放在旁边。确保您正在从布局文件调用所有这些分区。否则我看不出你的
页眉、页脚等丢失的原因。@Manoj我知道我可以从布局文件中调用它们,但这将是代码的重复。我只是不希望在单个控制器中出现这种情况。如何在控制器中将disable_dropdown设置为true?我已经更新了答案。在控制器中使用前过滤器。
 <%= render 'layouts/dropdown' unless @disable_dropdown %>
def test_method
  @disable_dropdown = true
end
before_filter :test_method