将simple_form集合转换为%ul?

时间:2016-04-08 14:06:43

标签: ruby-on-rails select collections html-lists simple-form

所以我会直接询问。

这是我的simple_form

的输入
= f.input :focus, collection: [[t('alg.focus.execution'), 'Execution'], [t('alg.focus.management'), 'Management'], [t('alg.focus.client'), 'Client'], [t('alg.focus.development'), 'Development']], :wrapper => :inline_checkbox, :include_blank => false, label: t('recruiter.jobs.new.focus')

并且html中的输出是这个

<div class="select required job_focus">
<select class="select required" name="job[focus]" id="job_focus">          
<option value="Execution">Execuție</option>
<option value="Management">Management</option>
<option value="Client">Client</option>
<option value="Development">Dezvoltare</option></select></div>

现在我想要做的是将选择标记更改为 ul ,将选项更改为 li ,这样我就可以根据需要自定义下拉菜单。

我在simple_form中找到了一种方法,你可以添加一个包装类来标记或使用另一个标签而不是其他标签,但正如我所见,仅限于一些标签,如输入,标签,错误等。但是我找不到如何更改选择和选项。

将此元素添加到输入:wrapper => :inline_checkbox,

并将此添加到simple_form.rb中

config.wrappers :inline_checkbox, :error_class => 'error' do |b|

  b.use :html5
  b.use :input
  b.use :label
  b.wrapper :tag => 'div', :class => 'controls' do |ba|
    ba.use :error, :wrap_with => { :tag => 'span', :class => 'help-inline' }
    ba.use :hint,  :wrap_with => { :tag => 'p', :class => 'help-block' }
  end
end

所以我需要你的帮助。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用https://github.com/Slashek/bootstrap-select-rails gem,只需将selectpicker类添加到input_html即可。

例如 <%= f.input :sharing_policy, label: t('portal_new.privacy.share_designs'), collection: sharing_policy_options, selected: current_school[:sharing_policy], include_blank: false, include_hidden: false, input_html: {class: 'selectpicker'} %>