1

我第一次在我的 Rails 4 项目中使用 Devise,我试图弄清楚如何将模型的所有权锁定给某些用户。

例如,如果用户创建了一个模型,只有该用户应该能够对其执行以下操作,

  • 列出属于用户的所有模型
  • 看法
  • 编辑
  • 更新
  • 删除

因此,基本上所有的 crud 操作都应仅限于拥有该模型的用户。

您将如何以 DRY 惯用的方式实施所有权?似乎我可以在控制器中进行检查以查看用户是否拥有当前对象,但是如果该对象被另一个控制器使用或用作嵌套更新的一部分,我必须重新实现逻辑,但它没有模型访问当前用户似乎是正确的。

4

1 回答 1

3

我会检查 gem cancan,它为用户分配权限,因此如果用户具有所有者角色,则具有所有 CRUD 操作的权限

RailsApp 有一个示例,尽管在 rails 3.2,https://github.com/RailsApps/rails3-bootstrap-devise-cancan,它使用了 devise 和 cancan

希望这可以帮助

于 2013-10-29T17:42:32.213 回答