我需要在 RubyonRails 应用程序中实现细粒度的访问控制。个人用户的权限保存在数据库表中,我认为最好让各自的资源(即模型的实例)决定是否允许某个用户读取或写入它。每次在控制器中做这样的决定当然不会很枯燥。
问题是,为了做到这一点,模型需要访问当前用户,调用类似
.但是,模型通常不能访问会话数据。译注:
may_read
的东西?(current_user
,attribute_name
)
有相当多的建议在当前线程中保存对当前用户的引用,例如在 这篇博文中。这肯定能解决问题。
相邻的 Google 搜索结果建议我在 User 类中保存对当前用户的引用,我猜想这是某个应用程序不需要同时容纳很多用户的人想出来的。;)
长话短说,我感觉我希望从一个模型中访问当前用户(即会话数据)的愿望来自我 做错了。
你能告诉我我怎么错了吗?