1

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

我的用户能够通过用户 ID 进行搜索对用户来说不是很友好,因为这对他们来说意义不大,所以我希望他们能够通过表演者的名字进行搜索。

我之前创建了一个使用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 结合起来以获得我想要的结果。

4

1 回答 1

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" } %> 
于 2015-12-30T09:22:00.077 回答