我最近一直在开发rails/主干网应用程序。到目前为止,每当用户对应用程序进行某些特定更改时(例如,选择一个视图而不是其他视图,使用某些过滤器,自定义视图中显示的信息),我都会将他/她的选择存储到rails会话变量中。使用这些会话变量中的信息可以确保在刷新页面或在同一台计算机上使用应用程序的新实例时,用户的更改保持不变。这种情况一直持续到用户注销,这会导致会话变量的信息丢失,并在用户下次登录时丢失默认设置
收到的反馈是,用户实际上希望他们的更改保持不变,即使他们注销或使用不同的计算机(例如,只要同一用户登录,默认设置就应该被他们的更改所取代)。我应该如何实现此功能?
谢谢!
同意Mischa的意见,您应该将数据保存在数据库中。
这是一个如何简单地向用户添加偏好的示例:
class User < ActiveRecord::Base
serialize :preferences
end
u = User.new
u.preferences = {
:view => {:controller => :dasboard, :action => :index},
:filters => {
:users => {
:order => :email
:page => 1
:quantity_per_page => 20
}
}
}
确保数据库中字段的类型为"Text"