gpt4 book ai didi

ruby-on-rails - 将 block 传递给 rails3 中的标签助手

转载 作者:行者123 更新时间:2023-12-04 07:36:43 25 4
gpt4 key购买 nike

我想用一些嵌套元素创建标签标签。我正在使用标签助手并尝试将内部 html 作为块传递,但生成的 HTML 看起来不像我预期的那样。
再培训局:

<span>Span element</span>
<%= label("object", "method") do %>
<span>Inner span</span>
<% end %>

HTML 输出:
<span>Span element</span> 
<span>Inner span</span>

<label for="object_method">
<span>Span element</span>
<span>Inner span</span>
</label>

当我使用 <% %> 标记传递内部 html 时,输出应该是这样的:
再培训局:
<span>Span element</span>
<%= label("object", "method") do %>
<% raw '<span>Inner span</span>' %>
<% end %>

HTML 输出:
<span>Span element</span>
<label for="object_method">
<span>Inner span</span>
</label>

我想知道这是我的错误还是 ActionView 标签助手中的错误。对于其他助手阻止传递工作正常。

谢谢,
米哈乌

最佳答案

我的理解是在这种情况下您需要使用 label_tag 助手:

<%= label_tag "my_label_name" do %>
<span>Inner span</span>
<% end %>

这样做的原因是尽管表单标签助手为您填写了“for”属性(使用您的模型对象属性),但您不需要它与嵌套元素。

当您有一个包含内部内容的开放标签标签(而不是自闭合标签)时,不需要“for”属性,因为标签显然与其嵌套内容相关联(这称为隐式关联)。

所以,这是预期的行为 - 看起来 Rails 团队故意以这种方式构建它。

关于ruby-on-rails - 将 block 传递给 rails3 中的标签助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6088348/

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