我正在使用Devise进行用户身份验证和基本身份验证。 假设我已经定义了用户和汽车之间的两个相互关联。
has_many :cars
belongs_to :user
用户A的车辆ID为1,用户B的车辆ID为2。
阻止用户A访问/cars/2
资源的最佳做法是什么? 我可以为每个控制器添加一个before_filter:show,:edit,:update,:destroy,但这看起来很乏味且重复。 有没有办法为此目的使用Devise或CanCan?
你可以使用CanCan,在这里阅读更多相关信息https://github.com/ryanb/cancan
将load_and_authorize_resource
添加到控制器的顶部之后
您可以将以下行添加到您的能力模型中,以仅允许车主管理它
可以:manage,Car,:user_id => user.id