Rails多态化has_one关联redirect_to控制器

时间:2018-11-02 14:03:24

标签: ruby-on-rails-5 polymorphic-associations

在我的应用中,用户用于身份验证阶段,并且通过多态性has_one关联,它将与不同类型的用户关联,并具有不同的操作。

这是用户模型:

class User < ApplicationRecord
  has_secure_password
  validates :username, presence: true, 
     uniqueness: true
  belongs_to :role, :polymorphic => true, dependent: :destroy
end

这是关联的模型之一

class Guest < ApplicationRecord
  has_one :user, as: :role
end

登录和身份验证调用home_index_path,当前用户存储在current_user中。

在家庭控制器中,我有:

def index
  if current_user
    redirect_to current_user.role
  else
    render 'unlogged'
  end
end

在route.rb中,我有:

resource :guest do
 member do
  get 'dashboard'
 end
end
resolve ('Guest') {[:guest]}

现在出现问题:假设用户是来宾,通过这种方式,我被重定向到show的方法GuestsController,但是我需要将其重定向到方法dashboard

我该怎么办?

1 个答案:

答案 0 :(得分:0)

好的,我已经解决了polymorphing_path

redirect_to polymorphic_path([:dashboard, current_user.role])