我在用户控制器中有一个名为“联系人”的自定义操作。此操作将由访客帐户访问,该帐户对用户设置的某些内容具有只读访问权限。视图应该只显示用户的某些属性——例如他们的名字,而不是他们更私密的细节。我正在使用 CanCan 和 Devise 进行身份验证和授权。
我在用户模型中将名称、密码等设置为 attr_accessible。所以,我的问题是,什么是阻止客人访问他们所链接的用户的所有属性?我的“联系人”视图只有@user.name - 有没有办法让黑客使用例如@user.private_details 刷新页面,或者这不可能?
如果可能的话,我该如何解决这个问题 - 有没有办法可以将控制器操作更改为仅从数据库中调用某些参数,例如:
@user = User.find(params[:id]), :only => (:first_name, :last_name)
任何建议将不胜感激,谢谢!