我正在尝试将多个筛选器设置持久化用户集,以便每当重新加载页面时,或者如果用户导航离开,然后导航回其筛选的页面,则筛选器设置不会重置为默认值。我发现了这个问题,询问与我的目标here相反的问题,并推断将persistence_id设置为true将使过滤器持久存在,但在为多个过滤器将persistence_id设置为true并在应用程序周围导航之后,我发现过滤器不是持久化的,而是重置的。
根据我对From文档的理解,persistence_id设置将能够启用会话持久性。是否有更多的会话持久性可能需要实现?
应用程序中使用的Rails和Ruby版本: Rails版本= 6.0.4.4 Ruby版本= 2.6.8p205
控制器中的示例实现:
def filterrific_appointments
initialize_filterrific(
Appointment,
params[:filterrific],
select_options: {
staff_member: User.staff.map { |p| [p.full_name, p.id] },
state: State.order(:name).pluck(:name, :id),
with_account: [["Account Created", true], ["No Account", false]],
},
default_filter_params: { staff_member: current_user.id, intake: true },
persistence_id: true,
available_filters: %i[
staff_member
state
intake
with_account
],
sanitize_params: true,
) || return
end 关联约会模型中的示例实现:
filterrific(
default_filter_params: { sorted_by: "start_time_asc" },
available_filters: %i[
sorted_by
provider
staff_member
state
appointment_type
location
start_time
end_time
with_account
],
)发布于 2022-01-21 15:27:31
因此,在与同事一起工作后,我们发现persistence_id并不是在寻找真/假值,而是要将筛选器会话与之关联的唯一字符串。我假设是如何在cookie中设置这些会话过滤器的,这样它就可以区分不同的过滤器。
https://stackoverflow.com/questions/70773625
复制相似问题