Ruby on Rails Thursday, July 23, 2015

Hello Marco, as you can see, you can send email or sms in the same way. The only thing you can do to avoid repetition, you should move the sms logic to a service class and instantiate it in the controller and in a rake task to send it from time to time.

I hope I helped you somehow.

2015-07-23 19:35 GMT-03:00 Marco Dias <dias.m27@gmail.com>:
I want send an SMS each 5 minutes to my users. At the moment, my application sends an SMS during the creation of an account.
 
 
   # users_controller.rb
   
def create
         
@user = User.new(user_params)
         
if @user.save
           
@user.send_activation_email
           
@user.send_daily_sms
            flash
[:info] = "Veuillez contrôler votre boîte mail pour activer votre compte."
            redirect_to root_url
         
else
            render
'new'
         
end
       
end


   
# user.rb
   
def send_daily_sms
   
       
# put your own credentials here
        account_sid
= '**********************'
        auth_token
= '**********************'
     
       
# set up a client to talk to the Twilio REST API
       
@client = Twilio::REST::Client.new account_sid, auth_token
     
       
@client.account.messages.create({
       
:from => '**********',
       
:to => '***********',
       
:body => 'Salut',  
       
})
     
end


I already have scheduled mails working in my project by doing this :

   
 # schedule.rb
    every
:day, :at => '12pm' do    
      rake
"email_sender_daily"
   
end
   
# My task
    task
:email_sender_daily => :environment do |_, args|
     
User.find_each do |user|
       
UserMailer.daily_mail(user).deliver_now if user.daily == true
     
end
   
end
   
# My UserMailer
   
def daily_mail(user)
   
@user = user
    mail to
: user.email, subject: "Mail journalier"
   
end


I'm showing you this because, with the UserMailer, I know how to access it from an other file. Here, I'd like to do the exactly the same for SMS, but how can I access the method that is in my Model ? If not, where can I put this method to be able to access it from my rake task ? 

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/6977da81-1fd7-47d6-a16d-36d63afedea7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAGNtUE_Ue6WhhEGgNZwz0zJpjXdBLhVCtSY15dTj-TGJ7iX3jw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment