用户特定的“资源”与设计和Rails?

时间:2011-01-09 19:55:18

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

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而不是所有日记条目。

我在这里思考正确的方向吗?有一个更好的方法吗?

1 个答案:

答案 0 :(得分:3)

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