在签名时设置用户角色

时间:2015-09-22 13:40:05

标签: ruby-on-rails

我制作了一个用户能力表,有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) %>

1 个答案:

答案 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