如何在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
有Ability
class需要定义
可能是这样的
class Ability
include CanCan::Ability
def initialize(user)
can :create, Billboard if owner?(user)
end
private def owner?(user)
user.is_owner?
end
end
实施基于您的上下文
我正在从事一个名为门户网站的广告牌管理项目。 我的 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
有Ability
class需要定义
可能是这样的
class Ability
include CanCan::Ability
def initialize(user)
can :create, Billboard if owner?(user)
end
private def owner?(user)
user.is_owner?
end
end
实施基于您的上下文