2016-02-02 2 views
2

Я создаю задачу рейка для отправки SMS-сообщения от пользователя, который подписан как current_user, и я должен отправить имя организации в конце, которое хранится в таблице организации. Но проблема в том, что метод current_user недоступен в файлах rake. Как я могу решить эту проблему?Как использовать метод current_user в rake task rails

+0

Для асинхронной обработки заданий вы можете захотеть взглянуть на DelayedJobs http://blog.andolasoft.com/2013/04/4-simple-steps-to-implement-delayed-job-in-rails.html , рейк-задачи кажутся IMHO не подходящим инструментом здесь – jethroo

+0

Rake-команды имеют другую среду, в вашем случае похоже, что она не связана с сетью (current_user - это просто сеанс) – dsounded

+0

@dsounded Мне нужно найти имя организации cuurent_user, так что вы предлагаете мне вместо этого – Supertracer

ответ

2

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

1

Вначале текущий пользователь не будет доступен в задаче грабли. Это просто переменная сеанса, работа с граблями работает по расписанию/периоду времени.

Если это что-то вроде транзакций sms, то это должно быть в реальном времени, и я не вижу необходимости в задаче на рассылку и надеюсь, что вы это знаете.

Когда вы хотите отправить sms всем пользователям, что-то вроде приветствия смс при регистрации и без ограничений по времени. В этом случае напишите код, чтобы извлекать данные от пользователей на основе метки времени и отправлять sms всем этим пользователям. Ясный процесс заключается в том, что есть логика для извлечения данных из базы данных в вашу задачу рейка, чтобы позаботиться об этом.

Обновление: Следите за тем, для кого нужно отправить sms, у вас есть стол, похожий на навалом, за исключением любой связанной информации, которую необходимо отправить в смс. если у вас сохранены пользовательские данные, и организация связана с ним. Просто сохранить информацию о пользователе в порядке, в то время как задача rake выполняется, потяните за информацию организации.

Чтобы справиться с днями рождения, напишите что-нибудь User.where DOB - это сегодняшняя дата. Запланируйте его, используя фоновое задание для запуска каждый день в любое заданное время. Это должно быть цель сервера

+0

на самом деле я хочу, чтобы сообщение было подписано именем организации, которое в настоящее время подписано, поэтому мне нужен текущий метод пользователя – Supertracer

+0

, также я забыл упомянуть, что метод current_user не является методом разработки, я внедрил свою собственную регистрацию signin без использования проекта – Supertracer

+0

и смс в дни рождения – Supertracer

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