Ruby on rails 将html对象属性传递到嵌入式ruby代码中

Ruby on rails 将html对象属性传递到嵌入式ruby代码中,ruby-on-rails,erb,Ruby On Rails,Erb,如何将html对象属性传递到html.erb文件中的嵌入式ruby代码中 假设我有一个ruby方法a,它接受字符串参数(以及is字符串的返回值)。我想到的情景如下: <input type="text" id="t" value="Leaves"> <%= A(document.getElementById("t").value) %> 显然,我不能那样写代码 我想将textbox的值/文本传递到方法A中,并将A的返回值打印到html正文中。我该怎么做 另外,如果我

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

假设我有一个ruby方法a,它接受字符串参数(以及is字符串的返回值)。我想到的情景如下:

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

显然,我不能那样写代码

我想将textbox的值/文本传递到方法A中,并将A的返回值打印到html正文中。我该怎么做


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

您可以使用类似Nokogiri的HTML解析器

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

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

在输入的情况下,您应该绑定到form builder对象,因此我看不出有必要这样做。ERB模板也不像DOM。它只是一个字符串缓冲区,你不能把它当作一个动态文档来处理。@max你是在建议我使用text\u field\u tag helper方法,对吗?那么,如何在嵌入的ruby代码中检索已创建文本字段的值呢?(这样就可以将该值传递给方法A)不,我是说您应该使用
form\u for
form\u with
(Rails 5)将输入绑定到模型实例。然后应使用表单生成器的
f.text\u字段
方法创建输入。如果你需要这个值,你可以使用
f.object.someproperty
。如果你在创建输入,你也会事先知道这个值,所以我不明白为什么你需要从html中解析它。但我也感觉到,你可能没有得到服务器/客户端流,可能是在尝试经常重复的noob错误在服务器上处理对输入的客户端更改。