簡體   English   中英

在我的應用程序中使用康康和設計

[英]use cancan and devise in my application

我想使用cancan來限制想要查看我的應用程序中某些頁面的用戶。

所以我嘗試通過本教程來做到: http : //www.roberthuberdeau.com/articles/9-Blog-tutorial-part-3

我有兩個角色:Admin和Worker,還有兩個控制器:Tasksadmins和Workers。

我想定義下一件事情:

1)工人可以管理和查看工人控制器的所有內容。

2)管理員可以管理和查看Tasksadminscontroller的所有內容。

我不確定是否定義正確:

class Ability
    include CanCan::Ability

    def initialize(user)
      user ||= User.new # guest user

      if user.role? :Admin
        can :manage, :tasksadmins
      elsif user.role? :Worker
        can :manage, :workers
      end
   end
end

我認為我不需要實現的下一件事是:“ def初始化用戶位適用於來賓用戶。” 我強迫用戶使用以下命令登錄: before_filter :authenticate_user

接下來的事情是:根據用戶角色開始限制對博客應用程序的訪問:

我不知道該寫些什么,在哪里寫。

在示例中,他寫道:

authorize! :edit, @article

因此,我嘗試在taskadmins控制器中編寫以下代碼:

authorize! :edit, @tasksadmins
authorize! :new, @tasksadmins
authorize! :index, @tasksadmins
authorize! :create, @tasksadmins
authorize! :show, @tasksadmins
authorize! :destroy, @tasksadmins

但我遇到一個錯誤: undefined method 'authorize!' for TasksadminsController:Class undefined method 'authorize!' for TasksadminsController:Class

請幫助我,我在cancan的定義的cancan

這篇文章過時了,我建議您查看github頁面上的CanCan文檔,尤其是這篇文章 這看起來像您想要執行的操作,但是如文檔中所示,您不必單獨authorize每個操作。 而且, 應該有助於您解決第二個問題。 如果您按照文章中的說明指定設計版本,則強烈建議您盡可能升級自己的gem。 祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM