ruby-on-rails – 将块传递给rails3中的标签助手
发布时间:2020-12-16 21:31:36 所属栏目:百科 来源:网络整理
导读:我想用一些嵌套元素创建标签标签.我正在使用标签帮助器并尝试将内部html作为块传递,但生成的 HTML看起来并不像我预期的那样. ERB: spanSpan element/span%= label("object","method") do % spanInner span/span% end % HTML输出: spanSpan element/span sp
我想用一些嵌套元素创建标签标签.我正在使用标签帮助器并尝试将内部html作为块传递,但生成的
HTML看起来并不像我预期的那样.
ERB: <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团队故意以这种方式构建它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |