gpt4 book ai didi

ruby-on-rails - 如何使用转义值动态构建构建器

转载 作者:太空宇宙 更新时间:2023-11-03 17:08:57 24 4
gpt4 key购买 nike

现在我知道如何在不转义值的情况下构建 xml。 How to tell Builder to not to escape values

但是我需要动态构建标签。

想要的结果

<bank_info>Chase</bank_info>

我有的是

attr = 'bank_info'
builder = Builder::XmlMarkup.new
builder.attr { |x| x << 'bank_info' } # does not work

我可以尝试将整个东西做成一个巨大的字符串并对其进行评估。但是评估并不是那么安全。有没有我缺少的更好的选择。

最佳答案

通常,调用您有名称的方法的最简单方法是使用send__send__。这里:

builder = Builder::XmlMarkup.new
builder.__send__("bank_info") do # same effect as: builder.bank_info do
builder << "Chase"
end

顺便说一句,有变体public_send,以防你想确保你没有调用私有(private)方法。它仅在 Ruby 1.9 中,您可以要求“向后移植”以在 Ruby 1.8 中使用它。

注意:在这种情况下,send 不起作用,正如@KandadaBoggu 所指出的,因为 Builder 覆盖了它;你必须使用 __send__

关于ruby-on-rails - 如何使用转义值动态构建构建器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2693282/

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