在 rails(使用 cancan 或其他方式)中,我希望登录用户能够编辑他们的一些数据库记录,但不是全部。
数据库看起来像这样:
User: name, password, team_id, role_id, notes
Role: name
Team: name
例如,如果current_user
(登录的那个)有一个角色,user
那么我希望他们能够做的唯一一件事就是更改他们自己的密码。我不希望他们能够重命名自己或改变他们的团队。我希望管理员能够添加关于他们自己和其他用户的注释,但不能添加关于其他管理员的注释。
我正在使用以下修改后的形式进行身份验证:
- http://railscasts.com/episodes/250-authentication-from-scratch
- http://railscasts.com/episodes/192-authorization-with-cancan
我正在考虑在以下内容中添加类似内容ability.rb
:
can :edit, User, :id => user.id
我的问题如下:
- 如何限制我希望他们访问的字段?
- 这应该去哪里,我在控制器而不是模型中思考。(因为我认为处理当前用户权限的东西不应该在模型层中)