我正在使用Ruby on Rails并尝试锁定URL和嵌套URL。我有一个以这种方式访问的URL:
/简档/:ID
我可以通过在show动作中添加一个检查来简单地锁定此URL。但是,我需要它更健壮一点。我还需要它来限制对此控制器上嵌套在配置文件下的其他操作的访问。例如:
简档/:ID /位置 简档/:ID /生物
我正在使用CanCan并且按照我的希望限制所有内容。但是,我现在尝试允许访问允许的配置文件。不幸的是,我只收到错误消息“您无权访问此页面。”我已经查看了文档,教程和RailsCast,但不幸的是我无法使它工作。
在我的控制器中:
@clients_purchasers = ClientsPurchasers.where(client_id: user.client.id,
purchaser_id: @purchaser.id, profile_status: "active")
authorize! :show, @clients_purchasers
我试图找出如何设置我的ability.rb文件,但我并不是100%肯定如何做到这一点。
我的能力.rb文件我认为是断开连接。这就是我所拥有的:
if user.role.name == "Manager"
can :read, ClientsPurchasers
end
添加此内容仍会限制对配置文件的访问。我还尝试传递参数来限制对不应该可见的ClientsPurchasers的访问:
can :read, ClientsPurchasers, :profile_status => "active", client_id: user.client.id
所有这些都无济于事。