【问题标题】:Authorise action with CanCan through model relationship通过模型关系使用 CanCan 授权操作
【发布时间】:2011-04-11 16:12:50
【问题描述】:

我将 CanCan 和 Devise 用于应用程序中的身份验证过程,并且一切正常。

但是,我们有一个设置,用户可以在其中创建项目列表。

List 模型有一个 user_id 并且 auth 可以正常工作,但是项目的所有权是通过 List :has_many Item 关系处理的,并且 Item 实际上没有 user_id 列。

CanCan 如何处理这个问题?

我试过了

can :manage, Item do |item|
  item.list.user_id = user.id
end

但在 url 上键入项目 ID 后,每个用户都可以访问每个项目,而不管列表所有权如何。

我在 Cancan 的 github 上的 wiki 中找不到任何似乎涵盖此内容的内容,因此希望这里的人能够提供帮助

期待cmets 谢谢

【问题讨论】:

    标签: ruby-on-rails-3 cancan


    【解决方案1】:

    您是否将=== 混淆了?

    can :manage, Item do |item|
      item.list.user_id == user.id
    end
    

    【讨论】:

    • 我是正式的白痴......不敢相信我错过了。只是在几个小时后寻找一些你有时只是看不到树木的东西。感谢您如此温和地指出显而易见的事情:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多