2015-03-13 1 views
0

Я создаю приложение с двумя типами пользователей admin и student. Модель пользователя имеет атрибут role либо admin, либо student. users имеют один профиль, но admin должны иметь возможность создавать множество профилей.У пользователя есть один профиль, администратор может сделать много

Я не могу понять, как моделировать модель profile, чтобы позволить admin создать много, но student, чтобы создать только один.

Что я могу сделать, это проверить, имеет ли студент профиль и удалить ссылку на профиль из своего вида, но я уверен, что есть лучший способ.

другая информация - с помощью изобрести для аутентификации и добавила роль атрибут различать студент (которые будут пользователями) и администратор (Me)

ответ

0
has_many :profiles, conditions => {:role => :admin} 
has_many :profile, conditions => {:role => :student} 
+0

Вы имеете в виду 'has_one: profile, conditions => {: role =>: student}'? –

0

Я бы настроить учетную запись базы пользователей, то есть их взаимодействовать с разными таблицами на основе внешних ключей, описывающих тип учетной записи. Для учетной записи пользователя стиля «airbnb». Пользователь может иметь списки в качестве хоста или делать оговорки в качестве гостя:

class User < ActiveRecord::Base 
    has_many :listings 
    has_many :reservations 
end 

class Reservation < ActiveRecord::Base 
    #has a foreign key guest_id 
    belongs_to :guest, :class_name => "User" 
end 

class Listing < ActiveRecord::Base 
    #has a foreign key host_id 
    belongs_to :host, :class_name => "User" 
end 

Надеюсь, что это поможет! Удачи!

 Смежные вопросы

  • Нет связанных вопросов^_^