我目前有一个我希望我的用户能够过滤的事件列表。每个事件都有一个表演者,我存储每个事件的表演者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结合起来以获得我想要的结果。
答案 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" } %>