![]() |
|
![]() ![]() ![]() |
|
dEEp |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
Использую acl9. Необходимо при регистрации пользователя использовать не только дефолтные поля, но и свои.
форма содержит поля: имя, пароль, подтверждение и ящик. но я добавил ещё и тип пользователя. Почему у меня тогда при сохранении в type - лежит null? миграция выглядит так:
В контроллере ничего интересного:
ну и модель:
|
||||||
|
|||||||
shine |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 20.10.2006 Репутация: 2 Всего: 5 |
type - это волшебное название поля в таблице для Rails. Сам фреймворк использует его в своем механизме STI. Поэтому переименуй поле и полегчает. Кстати, можешь посмтореть на STI: может это именно то, что ты пытаешься реализовать.
--------------------
An investment in knowledge always pays the best interest. © Benjamin Franklin |
|||
|
||||
dEEp |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
Переименование помогло. Спасибо.
Добавлено через 3 минуты я не знаю что такое STI, то почитаю. а пытаюсь организовать различные типы пользователей. т.е. для разных типов пользователей разные формы регистрации |
|||
|
||||
рельсовик |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 3.4.2010 Репутация: нет Всего: нет |
В таком случае, тебе возможно STI с type и надо, но нет ничего старшного в использовании null для обозначения "абстрактного" или "обычного" пользователя. STI работает так: к примеру ты хочешь реализовать обычных пользователей и админов. Делаешь модель User и соответствующую миграцию с полем type, который будет nullом. Затем есть два варианта, в завимимости от требований: 1. Пишешь все нужные методы для обычного юзера в модели User. Затем делаешь модель AdminUser < User, и дописываешь нужный функционал в эту модель. Хинт: если назовешь два метода в User и AdminUser одинакого, то метод будет исполнятся тот, что в модели юзера, на котором он исполнятся. В миграции ничего не трогаешь. А затем можно создавать новых админов путем u = AdminUser.new, или же u = User.new; u.type = AdminUser; (последний метод годится для изменений существующих юзеров). В обоих случаях админы будут сохранятся в ту же таблицу users, но с типом = AdminUser. Вот и вся магия =) 2. Оставляешь юзера абстрактным и пишешь туда только те атрибуты и методы, которые одинаковые для всех юзеров. Создаешь две модели: RegularUser и AdminUser, и пишешь везде свои методы. А дальше - как в варианте 1. Вариант 2 предпочтительней когда разных юзеров много, или же есть юзеры у которых меньше прав чем у "обычных" юзеров (GuestUser, например), поскольку безопасность всегда лучше внедрять путем давания прав по необходимости, а не лишения их. |
|||
|
||||
dEEp |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
понял. спасибо. надо подумать, подходит ли мне это.
Добавлено через 1 минуту и 4 секунды дайте пожалуйста обоим ребятам плюсы, а то я не могу, а они заслужили. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Ruby on Rails" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Ruby On Rails | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |