【问题标题】:Using simple_form in Rails 4, trying to pass data attributes to an input_field在 Rails 4 中使用 simple_form,尝试将数据属性传递给 input_field
【发布时间】:2026-02-22 11:25:01
【问题描述】:

我在 Rails 4 中使用 simple_form,我使用了一个输入,然后我将数据属性传递给这样的:

<%= 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;}}">

这显然不是最理想的(我删除了其他不相关的属性和属性以简化)。关于如何完成这项工作的任何想法?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 simple-form


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,这行得通。我实际上确实阅读了代码,但仍然不太明白应该如何传递属性(我试过:data-toggle =&gt; "tooltip" ,它不起作用。)