gpt4 book ai didi

ruby-on-rails - 避免 View 中出现重复的 "content_for"

转载 作者:行者123 更新时间:2023-12-02 06:25:06 25 4
gpt4 key购买 nike

我在我的布局中放置了一个子菜单,它因 Controller 而异,但在每个 Controller 方法 View 之间则不同。我目前正在做的是:

<% content_for( :submenu ) do %>
<%= render :partial => 'submenus/correct_submenu' %>
<% end %>

在方法的每个 View 中

然后我的应用程序布局中就有这个

<%= yield :submenu %>

但是,这感觉有点重复,对每个 View 都这样做。是否有某种方法可以针对每个 Controller 执行此操作?

最佳答案

我的建议是为此制定一个约定,因此如果您有一个 ProductsController,那么子菜单将是 submenus/products_menu。这样你就可以编写一个如下所示的助手:

def render_submenu
content_for(:submenu) { render :partial => "submenus/#{controller.controller_name}_menu" }
end

然后您可以通过以下方式调用它:

<%= render_submenu %>

然后您可以将其设为子菜单的默认内容,并仅在需要不同时才指定内容。

希望对您有所帮助!

关于ruby-on-rails - 避免 View 中出现重复的 "content_for",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2156102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com