twilioとrailsを学習するための通話追跡アプリを作成しようとしています。今、私は電話番号を購入する機能を追加しています。
createアクションでif/elseステートメントを実行したいのですが、電話番号がデータベースに保存されていて、twilio番号が実際に購入された場合は、これを実行します。それ以外の場合は実行します。
ただし、twilio番号はtrueまたはfalseを返しません。これが彼らのドキュメントで彼らが言っていることです:
HTTPPOST
アカウントの新しい電話番号を購入します。リクエストの電話番号が見つかった場合、Twilioはそれをアカウントに追加し、電話番号の最初の月の費用を請求します。Twilioがリクエストに一致する電話番号を見つけられない場合、Twilioエラーコード21452のHTTP400を受け取ります。
したがって、私がやりたいのは、ifステートメントを作成することです。ここで、戻り値がHTTP 400の場合、xを実行します。
これが私が現在持っているコードです
#This saves the Twilio number to the database, and buys it.
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 => @phone.twilio_number, :voice_url => VOICE_URL, :voice_method => "POST"})
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
HTTP 400エラーを参照するには、&& number.trueを何で変更する必要がありますか?
これが可能かどうかはわかりません-ですから、アイデアがあれば、私はすべての耳です:)。