こちらは非常に基本的なものです。私は、JsonとしてactiveResourceをポストし、反対側でそれを回復しようとしています。現在、私はJSONを送ることができるようですが、私の選択したオブジェクトにそれを再作成しません。activeResource.save(Ruby)に替わる
私はRubyでJsonの投稿要求を生成する際に手を入れました。
クライアント側のアクティブリソースと着信要求を処理するコントローラの2つの部分があります。エラーは通常406(要求しない)または422(Unprocessable Entity)になります 基本的な質問はどうすればこれらを修正できますか?
ここは自分のアクティブなリソースクラスです。
class UserRequest < ActiveResource::Base
self.site = "http://localhost:3008"
self.format = :json
#do not define defs as 'self'.whatever
def post_me
res = Net::HTTP.post_form(URI.parse('http://127.0.0.1:3008/user_requests.xml'),
{'url' =>'www.stackoverflow.com', 'depth' => '50'})
end
end
#Just to clarify. If im sending Json, I change the URI to .json and If I'm using xml, I #remove the self.format because active resource is XML by default
ここではアクティブレコードにするラインインコントローラです。 UserRequestsController
def add_request
@user_request = UserRequest.new(params[:user_request])
.
.
. end
ルート題しコントローラは皆の顔ヤシの木の前に今、いくつかのこと
match '/user_requests(.:format)' => 'user_requests#add_request', :via =>:post
であると私に怒って行きます。
私はadd_requestのdefにJSON.parseがありません。これは、私がそれを含めると、サーバー側で500と初期化されていない一定のエラーが発生するためです。宝石は間違いなくインストールされていますが、私は問題を抱えていた唯一の人ではありませんが、残念ながら修正はありません。
http://railsforum.com/viewtopic.php?id=4654 http://railsforum.com/viewtopic.php?id=28301
のでtheresの一つの質問は、私が仮定しているとして、それは私がしたいように動作するように私はパースを修正すればよい方法です406はJsonを受信しているが送信していないためです。私は、サーバー側でそれを取得される可能性がありますなぜ、おそらく彼らはこれを見て、私に言うことができるが、その可能性や、誰かが私はXMLを使用すべき理由を考えることができない場合 これが理想的である
Started POST "/user_requests.xml" for 127.0.0.1 at Thu Jul 14 09:38:34 +0100 2011
Processing by UserRequestsController#add_request as XML
Parameters: {"depth"=>"50", "url"=>"www.stackoverflow.com"}
SQL (0.2ms) SELECT 1 FROM "user_requests" WHERE ("user_requests"."url" IS NULL) LIMIT 1
Completed 422 Unprocessable Entity in 18ms (Views: 3.9ms | ActiveRecord: 0.2ms)
私のインターンプログラムのリードは好きではなく、目的に合わないと言っているので、私はセサブを使用していません。
何か私はそこで試したことがあります。 user_request.jsonで投稿し、コントローラ側にJSON.parseを含めないで、同じ処理不可能なエンティティの問題が発生する – overtone
'JSON.parse'(または' JSON'の他のメソッド)を使用する場合、JSON標準ライブラリをロードする必要があります'require 'json''。 – Koraktor
@Koraktor私はgemfileにgem jsonを入れました。 jsonがファイルを見つけられないように見えるように要求する。 Json.parseがうまくいけば、私はまだ406の代わりに422を得るでしょう – overtone