2017-09-20 18 views
2

私は検索フォームと電話番号の確認フォームを持っています。フォームの関連方法がわかっています。電話の検証後に検索結果を表示し、ユーザーが製品の条件そして、検証のための彼の電話番号、電話番号の確認フォーム

マイ検索フォームは

<%= form_tag recherche_path, id: "address_input", method: :get, autocomplete: 'on' do %> 
      <%= text_field_tag :location, params[:location], {id: 'address', class: "namanyay-search-box", placeholder: 'Adresse du bien à vendre', :required => true} %> 
      <%= text_field_tag :room_type, params[:room_type], {class: "namanyay-search-box-type", :required => true} %> 
      <%= submit_tag "Trouver une agence", id: "namanyay-search-btn" %> 
     <% end %> 

私の電話番号の検証フォームが

<%= form_for PhoneNumber.new, remote: true do |f| %> 
      <div class="form-group"> 
       <%= f.text_field :phone_number, class: "namanyay-search-box" %> 
      </div> 
      <%= f.submit "Envoyer", class: "btn btn-danger", id: 'send-pin-link' %> 
      <% end %> 
     </div> 

     <div id="verify-pin"> 
     <%= form_tag phone_numbers_verify_path, remote: true do |f| %> 
      <%= hidden_field_tag 'hidden_phone_number', '' %> 
      <div class="form-group"> 
      <%= text_field_tag :pin %> 
      </div> 
      <%= submit_tag "Verifier", class: "btn btn-danger" %> 
      <% end %> 

私がknいけませんお元気ですか?

答えて

1

あなたはtwilio-ruby gemを使っているとします。

post '/twilio/lookup', to: 'twilio#lookup'

あなたがしなければならないのは、送信するために、いくつかのJavascriptを追加します:

class TwilioController < ApplicationController 

    def lookup 
    respond_to do |format| 
     if valid_phone_number(twilio_params) 
     format.json { head :ok } 
     else 
     format.json { render json: 'error', status: :unprocessable_entity } 
     end 
    end 
    end 

    private 

    def valid_phone_number?(phone_number) 
    client = Twilio::REST::Client.new(ENV['TWILIO_ACCOUNT_SID'], ENV['TWILIO_AUTH_TOKEN']) 
    begin 
     response = client.lookups.phone_numbers(phone_number).fetch 
     response.phone_number #if invalid, throws an exception. If valid, no problems. 
     return true 
    rescue => e 
     if e.code == 20404 
     return false 
     else 
     raise e 
    end 
    end 

    def twilio_params 
    params.require(:twilio_number) 
    end 
end 

はルートを追加します:あなたはまだTwilioコントローラを持っていない場合は 、このようなものを作りますパラメーターtwilio_numberでそのルートへのPOST要求(How to pass parameters in $ajax POST?

あなたのニーズに合わせてルックアップアクションでJSONレスポンスを微調整する必要があるかもしれませんが、これは電話番号の検証まではこのトリックを行う必要があります。

+0

ここにTwilio伝道者がいます。答えはニック!ありがとう! Twilio :: REST :: LookupsClient'がTwilio :: REST :: Client'を介して行われ、 'client.lookups'が呼び出されました。代わりに.phone_numbers(phone_number).fetch'を実行します。他のすべてが同じように動作するはずです。 – philnash

+0

説明をありがとう@philnash。回答が更新されました。 –

関連する問題