(node.jsとcouchDBに基づいて)このサードパーティAPIに投稿しようとしています すでにこのAPIに正常に投稿されている機能するPHPアプリケーションがありますが、レール上でルビーを動かすと、私はテストサイトを接続しようとしています。Ruby on RailsからJSONをPOSTする
私が作成しなかったPHPアプリケーションでは、cURLを使用してPOSTVARSをjavascriptのドット表記のように表示されたエンコードされた変数に設定しています。
HTTPartyを使用しているので、私の投稿データをJSONに変換して送信すると、HTTPartyでpost varsがハッシュでなければならないからです。
投稿データをエンコードせずに送信すると、不正な形式のJSONエラーが発生します。
多次元ハッシュを、キーがその値のJSONドット表記であるキー値ペアの配列に変換する簡単な方法はありますか?
私は解決のためにこれらの記事を見ましたが、私はかなりルビーとレールに新しいので、まだ進歩はまだありません。
http://www.goodercode.com/wp/convert-your-hash-keys-to-object-properties-in-ruby/
これは素晴らしい記事ですが、私はあなたがそのコードを実装かどうかはわかりません。私はそれを/ libディレクトリのhashify.rbファイルに入れて再起動しましたが、まったく動作していないようです。
私はまた、このようなクラスを書いてみました:私はそれが再帰的である必要が
class Hashify
def initialize(hash)
hash.each do |k, v|
k=k.gsub(/\.|\s|-|\/|\'/, '_').downcase.to_sym
self.instance_variable_set("@#{k}", v) ## create and initialize an instance variable for this key/value pair
self.class.send(:define_method, k, proc { self.instance_variable_get("@#{k}") }) ## create the getter that returns the instance variable
self.class.send(:define_method, "#{k}=", proc { |v| self.instance_variable_set("@#{k}", v) }) ## create the setter that sets the instance variable
end
end
end
。
OOOO:
これは、あなたが探しているものかもしれません。これがうまくいけば、私は戻ってきて、それを答えとしてマークします。ありがとう! – afxjzs