在simple_form中集成select2

时间:2012-12-31 13:20:13

标签: ruby-on-rails simple-form jquery-select2

我在表单上使用select2。但是想在整个应用程序中使用它。

我在application.html.erb

中有这个部分
<script type="text/javascript">
  $(document).ready(function() {
    <%= yield :document_ready %>
  });
</script>

这在我看来:

<% content_for :document_ready do %>
  $("#menu_category_id").select2({minimumResultsForSearch: 10});
<% end %>

这是视图中的实际输入:

<%= f.input :menu_category_id, :collection => @product.menu.menu_categories, 
  :label_method => :name, :value_method => :id, :label => "Category" %>

这没有任何问题。但是我不想在所有视图中重复这一点,并希望用simple_view处理它。

如果我使用的话,最好的是:

<%= f.input :menu_category_id, :collection => @product.menu.menu_categories, 
:label_method => :name, :value_method => :id, :label => "Category", 
:select2 => 'minimumResultsForSearch: 10' %>

它会自动将它放在:document_ready部分。因此,如果页面上有3个选项,它将为所有选项执行以下所有选项:select2

这可以通过自定义输入实现吗?或者其他任何方式?

1 个答案:

答案 0 :(得分:0)

我认为您不需要自定义输入或content_for助手。将CSS类分配给您想要select2的输入,例如with_select2。接下来,为它们分配一个指定minimumResultsForSearch值的数据属性,例如data-minimum-results。在document.ready上,然后循环浏览类with_select2的所有输入,并使用数据属性中的select2调用minimumResultsForSearch