gpt4 book ai didi

ruby-on-rails - 部分在 rails 中具有多个产量

转载 作者:行者123 更新时间:2023-12-04 06:00:58 24 4
gpt4 key购买 nike

我正在寻找具有多个 yields 部分的解决方案.

在实际示例中,我有这个 View 结构:

基本 application.erb ( /views/layouts/application.erb ):

<!DOCTYPE html>
<head>
<title>Some title</title>
</head>
<body>
<div class="page">
<%= yield %>
</div>
</body>
</html>

一些偏干我的代码( /views/shared/content.erb ):
<div class="content">
<div class="sidebar">
<%= yield :sidebar %>
</div>
<div class="main">
<%= yield %>
</div>
</div>

和 Controller View ( /views/home/index.erb ):
<%= render :partial => 'layouts/header' %>    
<%= render :partial => 'shared/navigation' %>

<% # It is close to what I want to do %>
<%= render :layout => 'shared/content' do %>
<% content_for :sidebar do %>
<%# This is will go to application.erb, not in content.erb %>
<%= render :partial => 'shared/menu' %>
<% end %>

<%= yield %>
<% end %>

<%= render :partial => 'layouts/footer' %>

所以这里的主要问题是有一个具有多个屈服区域的模板块,并且能够传递自定义 html 或呈现另一个部分。

最佳答案

这个问题很老了,但是,当我在 Google 上搜索答案时,它仍然很重要。

我想出了一个解决方案,虽然仍然不漂亮,但效果很好。这个想法使用 Rails 的 capture方法,它接受一个块并将其内容存储到一个变量中:

Controller .html.erb

<%= render 'shared/partial', body: capture { %>
My body content
<% }, footer: capture { %>
My footer content
<% } %>

共享/_partial.html.erb
<div id="body"><%= body %></div>
<div id="footer"><%= footer %></div>

希望这可以帮助某人!

关于ruby-on-rails - 部分在 rails 中具有多个产量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17232817/

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