Rails select2 with filterrific gem

时间:2015-12-30 00:52:32

标签: ruby-on-rails select2-rails filterrific

我目前有一个我希望我的用户能够过滤的事件列表。每个事件都有一个表演者,我存储每个事件的表演者ID。

对于我的用户来说,能够按用户ID进行搜索并不是非常用户友好,因为它对他们来说意义不大,所以我希望他们能够通过表演者名称进行搜索。 / p>

我之前创建了一个使用select2 rails gem的简单搜索表单,我视图中的代码看起来像这样:

<%= select_tag(:performer, options_from_collection_for_select(@performer,
              :id, :profile_name, :selected => params[:performer]), :include_blank => true, id: "user", :class => "form-control")  %>

<script type="text/javascript">
$(document).ready(function() {
$('select#user').select2({
  allowClear: true,
  placeholder: "Choose a profile name",
});

});

这样我的用户就可以搜索并选择一个名称,它会找到与其user_id相关的相关事件。

我现在想要使用filterrifc gem在用户输入时实时进行搜索更新并显示结果,但我无法弄清楚如何修改我的代码以与gem一起工作。

如果我按照文档中的示例进行简单的文本搜索,模型中的范围将如下所示:

   scope :performer, lambda { |query|
where("LOWER(events.performer) LIKE ?", "%#{query}%")}

但我无法弄清楚如何将select2 gem与filterrific gem结合起来以获得我想要的结果。

1 个答案:

答案 0 :(得分:0)

这似乎已经成功了。

<%= f.select :performer, options_from_collection_for_select(@performer, :profile_name,:name), {:include_blank => true}, id: "user", class: "form-control", data: { placeholder: "Choose a performer" } %>