首页 > 解决方案 > Rails Polymorphing has_one 关联 redirect_to 控制器

问题描述

在我的应用程序中,用户用于身份验证阶段,并且通过多态 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]}

现在的问题:假设用户是guest,这样我被重定向到 method showof GuestsController,但我需要重定向到 method dashboard

我能怎么做?

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

解决方案


好的,我已经用 polymorphing_path 解决了

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

推荐阅读