我制作了一个用户能力表,有3种类型:admin,bidder,seacher。
user ||= User.new # guest user (not logged in)
can :read, :all
can :manage, Job do |job|
job.try(:user) == user
end
if user.admin?
can :manage, :all
elsif
user.has_role? :bidder
can :manage, Job, :user => {user_id: user.id}
elsif
user.has_role? :searcher
can :read, :all
end
在我的pages_controller中,我做了这个
def home
if current_user
redirect_to jobs_path
end
@searcher_plan = Plan.find(1)
@bidder_plan = Plan.find(2)
end
如何在登录期间将其与角色相关联?我试过这个,但它不起作用
<%= link_to "Bidder Account", new_user_registration_path(plan: @bidder_plan.id) %>
答案 0 :(得分:1)
我不明白你想要什么,但根据你的问题标题,你可以创建自己的回调:
# app/controllers/your_sessions_controller.rb
class YourSessionsController < Devise::SessionsController
after_login :set_role, only: :create
def set_role
# do here what you need
end
end