2012-06-14 4 views
0

Какова наилучшая практика с Devise 2.1, чтобы создать простую систему приглашения так же, как Pinterest?Pinterest пригласить систему с Devise

Другими словами, я хотел бы разрешить новым пользователям регистрироваться с формой приглашения. Тогда я хотел бы, что:

  1. Во-первых, Разрабатывают отправить «Благодарим за участие в Fuu Список ожидания» по электронной почте.
  2. Чтобы закончить, может быть, с помощью cron-задачи каждые 3 часа, Devise отправить «Вы приглашены присоединиться к Fuu».

Я использую Devise 2.1 с подтверждающим модулем. Я думаю, что devise_invitable gem не полезен в моем случае, потому что приглашенный пользователь не может приглашать нового пользователя.

ответ

0

я задал kindoff подобный вопрос, прежде чем может быть, это никакой пользы для вас:

rails beta request signup with social media sharing reward

В основном то, что вы хотите сделать, это сохранить электронную почту пользователя в модели «запросы», так что вы получить таблицу, в которой вы можете сохранить электронную почту и создать поле типа boolean с обработанным. Это приводит к:

|email   |processed| 
[email protected] true 
[email protected] false 

Тогда в/Lib/задачи/создать новые задачи грабли, что петли, истинные все ваши запросы и обрабатывать их в пакетном режиме. Это грубая идея, но она должна вас начать.

+0

Я вижу ... Но я имею в виду, есть чистый способ сделать это? В моем приложении ожидающий пользователя (запрашивающий приглашение) точно так же, как и обычный пользователь, с полем 'подтвержденный_at' значением' nil'. Если будет шаг за шагом, то это будет потрясающе. – Doug

0

Грубая идея, чтобы вы начали: Что вы в основном хотите, так это то, что пользователи подписали настоящую систему приглашений. Stackoverflow не для полных тренировок, чтобы вы попали в правильном направлении;) это сложное, чтобы полностью выписать.

Маршруты:

get '/signup/:code' => "devise/registrations#new" 

Контроллер:

params[:code] 

unless params[:code] 
    .. check if the code is correct 
    .. render your form here 
else 
    .. you need an invitation code to join our site 
end 

Модель

on_create :set_processed 
def set_processed 
    .. set processed to true 
end 
Смежные вопросы