如何在rails中使用CanCan?

How to use CanCan in rails?

我正在从事一个名为门户网站的广告牌管理项目。 我的 routes.rb 看起来像:

Rails.application.routes.draw do
  get "/", to: "main#index"

  get "/login", to: "login#loginpage"

  post "/login", to: "login#create"


  get "/register", to: "register#signup"

  post "/register",to: "register#create"

  get "/owner", to: "owner#ownerdashboard"

  get "/client", to: "client#clientdashboard"

  delete "/logout" , to: "login#destroy"

  get "/addbillboard", to: "addbillboard#add"

  post "/addbillboard", to: "addbillboard#addboard"

  get "/showboards", to: "showboards#showboards"

end

目前我只有两个模型所有者(用于用户详细信息)和板(用于广告牌详细信息)。我有很多使用这两种型号的控制器。现在我想将 cancan 与我的网络应用程序集成:特定用户可以访问特定 pages.My 主要问题是防止访客访问所有者 pages.Like 只有注册所有者才能添加广告牌。 我怎样才能确保这一点? 期待您的回答。

也许你应该先看,我觉得可以理解

https://github.com/CanCanCommunity/cancancan

https://github.com/CanCanCommunity/cancancan/blob/develop/docs/README.md

Abilityclass需要定义

可能是这样的

class Ability
  include CanCan::Ability

  def initialize(user)
    can :create, Billboard if owner?(user)
  end
  
  private def owner?(user)
   user.is_owner?
  end
end

实施基于您的上下文