2017-01-18 4 views
1

レール私はルビーレールのアプリケーションでこのカールスクリプトを実行しようとしています:ルビーを使用する方法は、カール内の変数(bashの)スクリプト

%x{ curl -F token='08F14AE57696E458BA6FC6A203F57E69' -F overwriteBehavior=normal 
-F content=record -F type=flat -F format=json 
-F data='[{"record_id":"123","seat_id_seq":"bbb","address":"bbb","price":"bbb","email":"bbb","tickets1_complete":"2"}]' 
'https://cri-datacap.org/api/' } 

とその作業罰金。今私は値をハードコードしたくないので、私は変数によってこの値を与えようとしています。

これらの変数は私のRailsアプリケーション上のテキストフィールドの値が含まれています。このスクリプトは私のコントローラで書かれている。..

%x{ curl -F token='08F14AE57696E458BA6FC6A203F57E69' -F overwriteBehavior=normal 
-F content=record -F type=flat -F format=json 
-F data='[{"record_id":"#{params[:record_id]}","seat_id_seq":"bbb","address":"bbb","price":"bbb","email":"bbb","tickets1_complete":"2"}]' 
'https://cri-datacap.org/api/' } 

はので、私は一つの変数RECORD_IDのために試してみましたが、そのは動作していません。

+3

なぜcurlの代わりにHTTPライブラリを使用しないのですか? – virtuexru

+0

私はその使い方がわかりません。 –

+0

ここでは簡単な例を紹介します。これはRubyの標準ライブラリです。 https://ruby-doc.org/stdlib-2.1.3/libdoc/net/http/rdoc/Net/HTTP.html – virtuexru

答えて

3

を使用すると、curbのようなライブラリが存在する場合は、%x{...}を使用すると、これは非常に面倒です。

data = [ 
    { 
    record_id: params[:record_id], 
    seat_id_seq: "bbb", 
    address: "bbb", 
    price: "bbb", 
    email: "bbb", 
    tickets1_complete: 2 
    } 
] 

system(
    "curl", 
    "-F", "overwriteBehavior=normal", 
    "-F", "content=record", 
    "-F", "type=flat", 
    "-F", "format=json", 
    "-F", "data=#{JSON.dump(data)}", 
    'https://cri-datacap.org/api/' 
) 

あなたはJSONデータを書いているときは、ドキュメントを100%有効であることを確認しようとJSON.dumpまたは.to_jsonを使用してください:何が​​したいことは、コールsystemです。

+0

これはエラーを投げています:未定義のメソッドペイロード –

+0

私はペイロードをデータで置き換えましたが、それはまだありませんデータを挿入する。 –

+0

これはparams [:record_id]のデータを取得していないようです。 –

関連する問題