2015-09-22 37 views
1

我製作了一個包含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 

我怎樣才能使它在登入時聯想到的角色?我tryed這一點,但它不工作

<%= link_to "Bidder Account", new_user_registration_path(plan: @bidder_plan.id) %> 
+0

用戶和計劃之間的關聯是什麼? – Pavan

回答

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