ruby-on-rails - 如何使用户只能使用 Devise 编辑/查看属于他们的项目?

标签 ruby-on-rails ruby

如何让用户只能使用 Devise 编辑/查看属于他们的项目?我似乎无法弄清楚。我研究并发现了一些关于在我的 list Controller 索引中设置 current_user 和创建方法以及将关系放入我的用户模型和 list 模型中的内容。我正在创建一个 list ,用户可以在其中创建标题和名称以及向该 list 添加项目,因此我也有一个项目模型。我读过康康舞,但不太确定这是否是我要找的。我只想在用户登录创建 list 时能够拥有它,该 list 只属于他们,所以当他们注销时,它不会显示他们创建的任何 list 。当他们重新登录时,将显示创建的 list 。我知道这是相当简单的事情,但无法确定任务。谁能帮忙。我在这个项目上使用 Rails 4。谢谢!

最佳答案

权限有两个主要方面。身份验证和授权。

Devise 提供身份验证,基本上就是“这个用户就是这个人”。它通过登录验证这一点。

类似cancan 的图书馆有助于提供授权,即“允许此用户执行此操作”。您可以使用 cancan 来 Define an ability with a block做类似的事情:

can :read, Item, Item.all do |item|
  item.owner == current_user
end  

关于ruby-on-rails - 如何使用户只能使用 Devise 编辑/查看属于他们的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17433546/

相关文章:

sql - 当相关数据需要存储在连接表中时,约定是什么?

ruby-on-rails - Rails - 给定文本 block ,自动链接

ruby - 如何在ruby中解析大的xml文件

ruby 正则表达式 : parsing C++ classes

ruby-on-rails - 获得 Pundit 授权使用 Namespaces on Rails 5

ruby - 有没有办法在ruby中返回方法参数名称

ruby-on-rails - Rails 回形针 gem - 从私有(private)文件夹中获取文件

mysql - 不确定如何将 SQL 转换为 Rails ActiveRecord

ruby-on-rails - 我有两个相互依赖的模型才有效。我如何为他们创建有效的工厂?

ruby-on-rails - 通过 Axlsx 添加到电子表格时正确设置 Excel 列宽