2016-09-26 48 views
1

我使用simple_form Rails中4,和我使用的输入,我再传给数据属性,像这样:Rails中4使用simple_form,试图通过数据属性的input_field

<%= f.input :url, :input_html => {"data-toggle" => "tooltip", :title => "My tooltip"} %> 

和它的工作如预期,如创建标签:

<input data-toggle="tooltip" data-original-title="My tooltip"> 

但是现在,我需要使用simple_form的input_field所以我可以在显示更多的控制权,但它似乎并没有接受input_html说法。我的代码如下所示:

<%= f.input_field :url, :input_html => {"data-toggle" => "tooltip", :title => "My tooltip"} %> 

,并导致:

<input html="{:data=>{&quot;data-toggle&quot;=>&quot;tooltip&quot;, :title=>&quot;My tooltip&quot;}}"> 

,这显然是不理想的(我剥夺其他不相关的属性和特性来简化)。关于如何使这项工作的任何想法?

回答

2

查看SimpleForm::FormBuilder#input_field的代码,看起来所有传入的选项都被视为在:input_html之下。

尝试删除:input_html而直接传递的选项:

<%= f.input_field :url, "data-toggle" => "tooltip", :title => "My tooltip" %> 
+1

是的,这工作。我确实读过代码,但还是不太清楚应该如何传递这些属性(我试过':data-toggle =>“tooltip”',这是行不通的。) – Wemmick