Rails と twilio を学習するために、通話追跡アプリを作成しています。現在、送信時に twilio の電話番号を他のパラメーターと一緒にデータベースに記録し、電話番号を購入するフォームがあります。
この機能は少し戻っていましたが、作成アクションでパラメーターを呼び出す機能を壊す何かを変更しました。
ここで、コードを実行すると、次のエラーが表示されます。
Twilio::REST::RequestError in PhonesController#create
Missing PhoneNumber parameter. Please specify the phone number that you would like to purchase
送信するフォームは次のとおりです。
<% @numbers.each do |number| %>
<%= form_for(@phone) do |f| %>
<%= f.hidden_field :original_number, :value => params[:original_number] %>
<%= f.hidden_field :name, :value => params[:name] %>
<%= f.hidden_field :twilio_number, :value => number.phone_number %>
<div class="found_list">
<div class="found_phone_number">
<%= f.label :twilio_number, number.friendly_name %>
</div>
<div class="choose_found_number">
<%= f.submit "Choose This Number", :class => "btn btn-large btn-success" %>
</div>
</div>
<hr>
<% end %>
<% end %>
submit を押したときにデバッガーが教えてくれることは次のとおりです。
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"/qJ6qATbNH2pZwxDPcKGifktWtAA5WrShbqb/2+lBbE=",
"phone"=>{"original_number"=>"6463978797",
"name"=>"Website",
"twilio_number"=>"+16464900447"},
"commit"=>"Choose This Number"}
そして、これが私の作成アクションです
def create
@user = current_user
@phone = @user.phones.build(params[:phone])
client = Twilio::REST::Client.new(@user.twilio_account_sid, @user.twilio_auth_token)
number = client.account.incoming_phone_numbers.create({:phone_number => params[:twilio_number]})
if @phone.save && number.true
flash[:success] = "Phone Number Created!"
redirect_to user_path
else
render new_phone_path
flash[:error] = "It looks like there were errors with the submission"
end
end
アクションを編集して、params[:twilio_number] を「+16464900447」に置き換えると、機能します。
ここまで頑張ってくれてありがとう!コントローラーで twilio_number パラメーターを適切に呼び出す方法について何か考えはありますか? それとも、他に問題があると思いますか?