I need to implement a notification feature in my project. My user model has a daily, weekly and monthly booleans fields. I already have a UserMailer that sends mail when I create an account, or for password resetting.
What I want is my app to send a mail each day or week or month, depending on what the user chose.
So I’ve installed Whenever gem, and here is my schedule.rb :
every :day, :at => ‘12pm’ do # Use any day of the week or :weekend,
:weekday rake “email_sender”
end
``
My rake task :
desc “Send email to users”
task :email_sender => :environment do |_, args|
User.find_each do |user|
UserMailer.daily_mail(user).deliver if user.daily == true
end
end
``
My UserMailer :
def daily_mail(user)
@user = user mail to: user.email, subject: “Mail journalier”
end
``
The thing is, I don’t know if I did right, and how can I test this, since I’m not in development ?
I tried to run the command rake email_sender in my terminal, and I got this :
[1m[36mUser Load (0.9ms)[0m [1mSELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1000[0m
DEPRECATION WARNING: `#deliver` is deprecated and will be removed in Rails 5. Use `#deliver_now` to deliver immediately or `#deliver_later` to deliver through Active Job. (called from block (2 levels) in <top (required)> at /Users/Marco/Documents/TBProject/lib/tasks/rake1.rake:5)
Rendered user_mailer/daily_mail.html.erb within layouts/mailer (1.2ms)
Rendered user_mailer/daily_mail.text.erb within layouts/mailer (0.2ms)
UserMailer#daily_mail: processed outbound mail in 189.6ms
Sent mail to example@railstutorial.org (8.6ms)
I did : whenever --update-crontab --set environment=development
And it worked in development, I could see in development.log that it sent the mail each 5 minutes. Good. Do I have to change this line and write environment=production or it’ll work like this if the project is put on a server ?
I did : whenever --update-crontab --set environment=development
And it worked in development, I could see in development.log that it sent the mail each 5 minutes. Good. Do I have to change this line and write environment=production or it’ll work like this if the project is put on a server ?
I did : whenever --update-crontab --set environment=development
And it worked in development, I could see in development.log that it sent the mail each 5 minutes. Good. Do I have to change this line and write environment=production or it'll work like this if the project is put on a server ?
You'll have to shell into the server and run the command on the server with the environment=production flag. Whenever makes a crontab entry for your job, and it has to do that in the actual crontab on the server, not on your dev machine.
Hi I am from Iran S. I love Ruby One on Instagram and his goofy menu
fake page I just want a way to connect with Ruby Just once I want to
talk to me. You know how difficult the situation in Iran pleas pleas
pleas
Hi I am from Iran S. I love Ruby One on Instagram and his goofy menu
fake page I just want a way to connect with Ruby Just once I want to
talk to me. You know how difficult the situation in Iran pleas pleas
pleas
It is best to start a new thread for a new question, rather than
tagging it on the end of an old one. However, it is not clear exactly
what it is that you want.
I Googled the object of Saeideh's desire, and at least on Instagram it
seems to be a fashion designer. So, I'm thinking the post was simply
spam, attracted by the name of our language. (That's why I'm not
repeating the Instagram account name here.)