我对 Rails 很陌生,我正在尝试设置一个授权系统,该系统允许我控制用户可以修改模型的哪些属性。
我使用 declarative_authorization 进行基于角色的授权。这已经为我提供了很多功能:根据用户的角色限制用户在视图中可以看到的内容,他可以在控制器中执行哪些操作,基本上还允许他在模型上执行哪些操作。
但是,我只是找不到关于如何根据角色限制对模型特定属性的操作的答案。
示例:允许具有 :guest 角色的用户更新用户帐户的某些属性:当他尝试使用错误密码登录时,我想更新将创建此帐户的用户帐户的特定字段不活动。但是 :guest 角色永远不能更改此用户帐户的昵称。
因此,我在我的用户模型中使用“using_access_control”方法,但这要么为帐户提供所有属性的“更新”权限,要么根本没有“更新”权限,具体取决于角色。
我知道“strong_parameters”是一个基本上可以提供此类功能的宝石,但我不知道如何将“declarative_authorization”和“strong_parameters”结合在一起,或者如何简单地使用“declarative_authorization”。
有人可以指出我的解决方案吗?
非常感谢!