【问题标题】:User specific "resources" with devise and Rails?具有设计和 Rails 的用户特定“资源”?
【发布时间】:2011-01-09 19:55:18
【问题描述】:

user 有很多diary_entries

diary_entries 是用户私有的,因此用户只能创建/编辑/查看他自己的 diary_entries。

我之前没有实现过这种模式,并试图弄清楚如何做到这一点。

第一步是before_filter :authenticate_user!,但这使得diary_entries 仍然是注册用户之间的“共享”资源。

diary_entries#create 操作中,我们设置了@diary_entry.user = current_user。然后,我们可以仅在 @diary_entry.user == current_user 时允许编辑/更新。

索引操作仅列出 current_user.diary_entries 而不是所有日记条目。

我的想法是否正确?有一个更好的方法吗?

【问题讨论】:

    标签: authentication ruby-on-rails-3 authorization devise


    【解决方案1】:

    我建议使用CanCan 来实现权限。这将使限制用户访问他们自己的 diary_entries 变得非常容易。它也很容易使用。不要编写自己的代码来处理权限,否则如果出现任何错误,您将面临损害隐私和/或安全性的风险。

    【讨论】:

    • CanCan 似乎完全按照我的建议做,但以集中和灵活的方式进行。谢谢,我试试看!
    • 很高兴您发现 CanCan 相关。由于我为代码做出了贡献,所以我有偏见,但我认为它非常棒。
    猜你喜欢
    • 2016-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 2011-06-30
    • 2011-07-30
    • 2012-04-21
    • 2015-03-17
    相关资源
    最近更新 更多