我需要为选择控件的每个选项添加自定义
HTML属性.我在Rails中使用simple_form.有谁知道如何做到这一点?该属性将被客户端JS使用.
例如,我想做这样的事情:
<%= f.input :group,collection: @groups,option_html: { data-type: lambda { |g| g[2] } } %>
哪个会产生(简化):
<select> <option value="1" data-type="primary">First Group</option> <option value="2" data-type="secondary">Second Group</option> <option value="3" data-type="secondary">Third Group</option> </select>
@groups可能如下所示:
[ ['First Group',1,'primary'],['Second Group',2,'secondary'],['Third Group',3,'secondary'] ]
希望避免使用自定义控件/包装器.谢谢!
解决方法
你很近最简单的方法其实不是在这里使用simple_form.这是
simple_form documentation
<% options = @group.map { |g| [g.name,g.id,{'data-type' => g.group_type}] } %> <%= f.input :group,label: 'Group' do %> <%= f.select :group,options,include_blank: 'Select a Group',class: 'form-control' %> <% end %>
对于您的确切代码,它将是:
<% options = @group.map { |g| [g[0],g[1],{'data-type' => g[2]}] } %> <%= f.input :group,class: 'form-control' %> <% end %>