gpt4 book ai didi

ruby-on-rails - 如果内容则产生,否则渲染(Rails 3)

转载 作者:行者123 更新时间:2023-12-04 01:48:01 26 4
gpt4 key购买 nike

我已经离开 Rails 一段时间了,所以也许我错过了一些简单的东西。

你怎么能做到这一点:

<%= yield_or :sidebar do %>
some default content
<% end %>

甚至:
<%= yield_or_render :sidebar, 'path/to/default/sidebar' %>

在第一种情况下,我正在尝试:
def yield_or(content, &block)
content_for?(content) ? yield(content) : yield
end

但这会引发“未给出块”错误。

在第二种情况下:
def yield_or_render(content, template)
content_for?(content) ? yield(content) : render(template)
end

这在没有定义内容时有效,但是一旦我使用 content_for 覆盖默认内容,它就会抛出相同的错误。

我用过 this作为起点,但似乎只有在 View 中直接使用时才有效。

谢谢!

最佳答案

这样的事情怎么样?

<% if content_for?(:whatever) %>
<div><%= yield(:whatever) %></div>
<% else %>
<div>default_content_here</div>
<% end %>

Inspiration from this SO question

关于ruby-on-rails - 如果内容则产生,否则渲染(Rails 3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3347322/

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