私はインターネット上で検索しましたが、この問題について明確な答えを得ることはできません。私はBlock.io APIを使ってBitcoin支払いを自分のアプリに追加しています。各支払いの新しいBitcoinアドレスを含むJSONハッシュを受け取ったので、Bitcoinアドレスを抽出できますが、データベースに自動的に保存する必要があります。ユーザーが特定のページにアクセスすると、そのページにアドレスも生成されます。APIからのデータを自動的に保存する方法 - Ruby on Rails
class PaymentsController < ApplicationController
def index
@new_address = BlockIo.get_new_address
end
end
そして、ビットコインアドレスを使用して表示されます:
私はアドレスを生成するためのAPIを呼び出して、コントローラを持って{"status"=>"success", "data"=>{"network"=>"BTCTEST", "address"=>"2MstFNxtnp3pLLuXUK4Gra5dMcaz132d4dt", "available_balance"=>"0.01000000", "pending_received_balance"=>"0.00000000"}}
:私は、JSONは次のようになりますPostgresqlの
を使用しています
<%= @new_address["data"]["address"] %>
私はビットコインアドレスを保存する新しい関数を作成することを考えていますデータベースとは、特定のページにアクセスする際に、この機能を実行するためのルートをマップし、何かのように:
コントローラー:
class PaymentsController < ApplicationController
def create
@new_address = BlockIo.get_new_address
## I need assistance with the rest to auto save
end
end
路線:
match '/save_btc' => 'payments#create', via: [:get, :post]
誰かがdomain.com/save_btc開きますビットコインアドレスを自動的にデータベースに保存する必要があります。私はすでに、次の移行
rails g model Payment bitcoin:string
を生成した
任意のコメントや支援が大幅に高く評価されます。
まず、状態を変更したり、新しいものを保存したりするために、GETリクエストを使用しないでください。セマンティックではなく、CSRFやログなどに関するセキュリティ面で問題があります。代わりにPOST/PUT/PATCHを使用してください。その後、それをやろうとします。通常の 'create'コントローラアクションで何が起こるかを見てください。特定の問題が発生した場合はいつでも元に戻ることができます。 –
私は@HalilÖzgürと一緒にいます。本当に例外的なケースがない限り、標準のRESTエンドポイントを試してみてください。これは、POST経由で 'bitcoin_addresses#create'のようなものを通る方が良いでしょう。 – tadman
@tadmanコントローラとルーティングを更新しましたが、第三者APIからデータを保存することに慣れていません。API BlockIoを呼び出すための適切な構文についてのガイダンスを提供できますか?get_new_addressを作成し、保存します。モデル/コントローラをpayment = Payment.newなどとして使用することに慣れているので...このメソッドでAPIを「プラグイン」しているかどうか –