2017-10-27 10 views
0

新規ユーザーに確認SMSを送信するように私のレールプロジェクトをセットアップする必要があります。私はテーブルsms_enable_flagを持っているphone_calling_codesテーブルを持っています。私のDBでは、このフィールドはチェックされていなくてはならないので、ブール値です。Railsでシンプルな条件を追加する必要があります

私はTwilioを使用してSMSを送信しますが、このsms_enable_flagがチェックされている番号にのみSMSを送信する条件を追加します。

また、電話番号を解析して国コードを取得するには、phonelibを使用します。

def perform(phone_number, confirmation_code) 

    logger.info("Job started sending confirmation code") 

    overrideToPhone = [ "development","upgrade"].include? Rails.env 
    deliverSMS = !([ "development", "upgrade"].include? Rails.env) 


    phone='' 
    if overrideToPhone 
     e164Prefix = '+' 
     phone_number = e164Prefix + "17782002024" 
    else 
     phone = Phonelib.parse(phone_number) 
     phone_number = phone.e164 
    end 

    sms=phone_calling_codes.find_by calling_code: phone.country_code 
    if sms 
     if sms.sms_enabled_flag 
     from_phone_number = Rails.application.secrets.twilio_number 
     body = "Valorbit.com - your phone verification code is: #{confirmation_code}" 

     logger.info("From #{from_phone_number} to #{phone_number} : #{body}") 

     twilio_client.messages.create(
      to: phone_number , 
      from: from_phone_number , 
      body: body 
     ) if deliverSMS 
     logger.info("Sent sms to #{phone_number}") if deliverSMS 
     else 
     logger.info("SMS is not enabled for #{phone_number}") 
     end 

    end 
    end 

私にこれを手伝ってください。私はOOPの初心者であり、私がどのように考えていたのか大丈夫かどうかを理解したい。

ありがとうございます! :D

答えて

0

チェンジ・ライン

sms=PhoneCallingCode.find_by calling_code: phone.country_code 

PhoneCallingCode

sms=phone_calling_codes.find_by calling_code: phone.country_code 

/app/modelsフォルダ以下

に存在するモデル名はモデルからデータを検索するクエリです:

ModelName.find_by column_name: parameter 
関連する問題