外部のRubyスクリプトからPOSTリクエストをHTTP#post_form
経由でRailsアプリに送信しようとしています。 create
アクション(つまり、URIはhttp://server/controller
)へのリクエストが行われます。外部スクリプトから新しいレールデータベースレコードを作成しますか?
私はリクエストに単一のパラメータをエンコードした場合、すべてが正常である:
HTTP::post_form(uri, { :my_param => "value" })
私は明示的にコントローラに、手動でparams
からmy_param
を引き出すために持っていますけど。これは非効率的で、アプリケーション内から新しいレコードを作成することができなくなります(そのパラメータは存在しないため)。その結果、私のスクリプトをRails自身のようにして、コントローラが期待するような適切なデータを渡すようにしています。
HTTP::post_form(uri, { :object => { :my_param => "value" } })
ただし、これは機能しません。 post_form
は明らかに同じことをしない
{ "object" => [\"my_param\", \"value\"] }
すなわち、別のものに私のハッシュをエスケープしているようです。私はデータを渡している方法で何かを見逃していますか?または、私が(アプリの外から新しいレコードを作成した後に)何を達成することができないのですか?
優秀、ありがとうございます!しかし、値が配列のときには分解されるようです。あなたはその事件をどのように扱うのか分からないのですか? – kfb
私の編集した投稿をチェックしてください –
素晴らしい、それはすぐにソートされています。乾杯! – kfb