将额外数据添加到simple_form输入

Pie*_*rre 5 ruby-on-rails-3 simple-form

我正在使用simple_form gem.

我正在根据集合(我的所有列表actiontypes)呈现输入

<%= f.association :actiontype, collection: Actiontype.all, input_html: { data: {'impacts-pnl' => ??}} %>
Run Code Online (Sandbox Code Playgroud)

我希望能够在输入中添加数据属性来存储额外的数据.

在这种情况下,我想存储impacts_pnl我的属性actiontype.唯一的问题是我不知道如何参考当前actiontype

collection.impacts_pnl 不起作用(显然)

actiontype.impacts_pnl都不是.

如何将这些额外的数据传递给我的输入?

小智 15

如果要将这些属性添加到选择域的选项元素,则应使用例如.map()函数来更改集合.另外,使用带有块的输入助手来执行此操作,否则它不起作用;

= f.input :actiontype do
    = f.select :actiontype, Actiontype.all.map{|a| [a.name, a.id, {"data-impacts-pnl" => p.impacts_pnl}]}
Run Code Online (Sandbox Code Playgroud)

有关此问题的更多信息,请参阅https://github.com/plataformatec/simple_form/issues/188