form_tag使用HTML5数据属性来填充我的text_field

时间:2011-09-17 01:21:01

标签: ruby-on-rails

我已经在单独的视图中使用了此代码,但是在form_for

<%= text_field :search_tags, :id => 'search_tags', 'data-autocomplete' => "lame sauce" %>

我要做的是为自动填充的表单提交创建一个简单的表单。它在其他位置工作得很好,但出于某种原因,只要我将text_field从form_for中取出,它就会生成这个HTML:

<input id="search_tags_{:id=&gt;&quot;search_tags&quot;, &quot;data-autocomplete&quot;=&gt;&quot;lame sauce&quot;}" name="search_tags[{:id=&gt;&quot;search_tags&quot;, &quot;data-autocomplete&quot;=&gt;&quot;lame sauce&quot;}]" size="30" type="text">

这都是乱码和丑陋的:( 现在,因为这是一个简单的表单我提交我只是使用form_tag,我只需要它去一个特定的控制器和动作......就是这样。 无论如何,我已经阅读了text_field_tag和text_field文档,似乎我也不喜欢它。什么是这个问题的好方法?或者有什么方法可以使用text_field或text_field_tag,我不知道? 非常感谢!

3 个答案:

答案 0 :(得分:2)

form_for之外,如果要使用text_field而不是{text_field_tag,则需要指定对象名称和方法名称作为第一个和第二个参数{1}}。

如果您决定使用text_field_tag(当您在form_for之外时可能更适合您的目的),请确保使用正确的语法:第一个参数是id,其余的是选项哈希。

参考文献:RoR API: FormHelper#text_fieldRoR API

P.S。你并不需要像这样覆盖id - 它会破坏form_for的部分目的,它会生成RESTful风格的表单。

答案 1 :(得分:2)

如果我理解,只是你使用text_field的方式有问题,试试这个:

<%= text_field :search, :tags, :id => 'search_tags', 'data-autocomplete' => "lame sauce" %>

答案 2 :(得分:1)

第一个参数是id,第二个参数是值。 需要看起来像这样:

<%= text_field_tag "search_tags", '', 'data-autocomplete' => "lame sauce" %>