Rails Polymorphing has_one ассоциация redirect_to контроллер - PullRequest
0 голосов
/ 02 ноября 2018

В моем приложении пользователь используется для фазы аутентификации, и с полиморфной ассоциацией 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 голосов
/ 02 ноября 2018

Хорошо, я решил с polymorphing_path

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