在我的Account
s索引页面上,我在页面顶部有一个表单,其中有几个允许过滤的<select>
s。在最初的get请求中,我希望通过当前的Staffer
进行过滤,同时保持选择任何Staffer
的能力。正如下面所写的代码,当前的Staffer
在页面加载时被选中,但这不会过滤结果。
<%= bootstrap_form_with url: accounts_path, scope: :filters, remote: true, method: :get, data: {controller: "filterable"} do |f| %>
<div class="row">
<div class="col-3">
<%= f.select :staffer_id, options_from_collection_for_select(Staffer.ordered, :id, :full_name, selected: current_staffer.id), {label: "Responsible Staffer", prompt: "Anyone"}, data: {action: "change->filterable#apply"} %>
</div>
在您的控制器上,您需要在显示页面之前进行过滤
class AccountsController < ApplicationController
def index
staffer_id = params[:staffer_id].presence || current_staffer.id
@accounts = Account.where(staffer_id: staffer_id)
end
end