我有一個簡單的表,其中顯示所有用戶及其屬性id,名稱,年齡,狀態,位置。我想過濾年齡和地位。查看應用過濾器後不更新[紅寶石軌道filterrific]
Id name age status location
1 xz 22 single ca
2 yy 23 married ma
我使用的是filterrific插件,能夠顯示列表和過濾器下拉列表。
我user.rb
filterrific(
available_filters: [
:with_status,
:with_age
]
)
scope :with_age, lambda { |age|
where(age: [*age])
}
scope :with_status, lambda { |status|
where(status: [*status])
}
def self.options_for_select
order('LOWER(status)').map { |e| [e.status] }.uniq
end
def self.options_for_select2
order('LOWER(age)').map { |e| [e.age] }.uniq
end
控制器指數看起來像
def index
@filterrific = initialize_filterrific(
User,
params[:filterrific],
select_options: {
with_status: User.options_for_select,
with_clearance_batch_id: User.options_for_select2
},
default_filter_params: {},
available_filters: [],
) or return
@users = @filterrific.find
respond_to do |format|
format.html
format.js
end
end
的index.html.erb看起來像
<%= form_for_filterrific @filterrific do |f| %>
<div>
age
<%= f.select(
:with_age,
@filterrific.select_options[:with_age],
{ include_blank: '- Any -' },
{class: 'form-control' }
) %>
</div>
<div>
status
<%= f.select(
:with_status,
@filterrific.select_options[:with_status],
{ include_blank: '- Any -' },
) %>
</div>
<% end %>
<%= render(
partial: 'browse_users/list',
locals: { users: @users }
) %>
當我去我的頁面能夠看到所有的用戶。現在,當我過濾沒有發生。我仍然看到所有的用戶。不知道發生了什麼事。我感覺我的範圍過濾器沒有得到應用。