将html对象属性传递给嵌入式ruby代码

时间:2017-11-20 17:10:32

标签: ruby-on-rails erb

如何将html对象属性传递到html.erb文件中的嵌入式ruby代码?

假设我有一个接受字符串参数的ruby方法A(并且A的返回值也是字符串)。我想到如下情况:

<input type="text" id="t" value="Leaves">
<%= A(document.getElementById("t").value) %>

显然我不能用这种方式编写代码。

我想将文本框的值/文本传递给方法A,并将A的返回值打印到html正文中。我怎么能这样做?

另外,如果我想连续检查文本框的值并将A的返回值(当将文本框的当前值传递给A时)附加到文档正文,我该怎么办?如果我想把一段p的文本设置为这个返回值,我应该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用像Nokogiri这样的HTML解析器。

frag = Nokogiri::HTML.fragment('<input type="text" id="t" value="Leaves">')
frag.at_css('#t').attr('value')

但它似乎是一个相当愚蠢和过于复杂的解决方案,最有可能通过不使用HTML字符串来传递视图/助手中的数据。