0

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

<%= render 'layouts/header' %>

因此,此标头适用于所有控制器和所有操作。

除了标题部分之外,我还有一个下拉部分,我想在除一个控制器之外的所有控制器中显示它。我想要类似的东西

<%= render 'layouts/dropdown' except_controller_anycontroller %>

当我把

render :partial => 'layouts/dropdown'  

它只是呈现下拉部分,所有其他布局都丢失了(如页脚、页眉、正文)。我只想将额外的下拉部分添加到某些操作和控制器。

如何在 Rails 3.2.13 中实现这一点?

4

2 回答 2

1

用这个替换你的渲染:

 <%= render 'layouts/dropdown' unless @disable_dropdown %>

然后,您可以在任何您喜欢的控制器中简单地将 disable_dropdown 设置为 true:

def test_method
  @disable_dropdown = true
end

在您的控制器过滤器中调用此方法,您不想在其中显示:

将其写在您的第一个方法上方的控制器顶部:

before_filter :test_method

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

希望它会有所帮助。谢谢

于 2013-07-27T12:34:10.970 回答
0

我会建议类似:

<%= render 'layouts/dropdown' unless params[:controller] == "controller_to_avoid" %>
于 2013-07-27T11:58:30.663 回答