Рельсы разрабатывают STI или полиморфные, когда их много? - PullRequest
0 голосов
/ 30 декабря 2010

У меня проблема.Я не могу понять, как решить эту проблему аутентификации с помощью devise, и я не знаю, следует ли мне использовать полиморфную ассоциацию в моделях или STI.

У меня есть 2 модели, такие как Teacher и Student.И я пытаюсь создать полиморфную ассоциацию.

Вот мои модели:

   Teacher model:
        class Teacher < ActionController::Base
        has_one :user, :as => :profileable 
        devise :database_authenticatable, :registerable 
        end
    Student model:
        class Student < ActionController::Base
        has_one :user, :as => :profileable 
        devise :database_authenticatable, :registerable 
        end
    User model:
        class User < ActionController::Base
        belongs_to :profileable, :polymorphic => true
         attr_accessible :email, :password, :password_confirmation, :remember_me
        end

Мои маршруты.rb

School::Application.routes.draw do
  devise_for :users
  devise_for :teachers
  devise_for :students

Я создал файлы представлений для учителей и студентов.Но я не могу понять, как иметь 1 пользовательскую таблицу и различные представления и страницы регистрации.

Я хочу иметь 2 страницы регистрации.Один для Учителя и один для Студента.Я хочу, чтобы в таблице User хранилась информация для входа (электронная почта, пароль ...).

Как мне создать такую ​​вещь с помощью devise?

С уважением,

Начинающий рельс

1 Ответ

2 голосов
/ 26 февраля 2011

Я бы пошел на STI и использовал бы модель профиля, сохраняющую пользовательские предпочтения и т. Д. Что касается различных видов для каждой модели, взгляните на раздел с областями видимости.

...