我有一个搜索表单和电话号码验证表格我想知道如何关联表格,我想只在电话验证后显示搜索结果,并且用户只填写一个表格,其中包含产品标准和他的电话号码验证,
我的搜索表单
<%= 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 %>
我不知道如何让它在我的控制器中工作
答案 0 :(得分:1)
假设您正在使用twilio-ruby
宝石。
如果你还没有Twilio控制器,可以这样做:
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
添加路线:
post '/twilio/lookup', to: 'twilio#lookup'
然后,您需要添加一些Javascript,以使用参数twilio_number
向该路由发送POST请求。 (如果您需要帮助,请参阅此帖子:How to pass parameters in $ajax POST?)
您可能必须在查找操作中调整JSON响应以满足您的需求,但这应该可以解决验证电话号码的问题。