ruby on rails3で、rjsを全然使わずにxhrリクエストをさばくapiを作りたいのですが、書き方がわかりません。


例えば、postの xhrで、createメソッドをよんでコメントを書き込んだあと、書き込んだコメントをjson形式でrespondして、クライアントサイドで使いたいのですが、controllerの書き方がわかりません。

xhrリクエストに対し、jsonを返すcontrollerの書き方が分かりましたら、教えてもらえますか。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/08/22 09:21:21
  • 終了:2011/08/29 09:25:02

回答(0件)

回答はまだありません

  • id:piglovesyou
    自己解決

    comment_controller.rb
    5 def create
    6 return redirect_to '/404.html' unless request.xhr? # xhr以外のアクセスをはじく
    7 @post = Post.find(params[:post_id])
    8 @comment = @post.comments.create(params[:comment])
    9
    10 respond_to do |format|
    12 format.js { render :text => @comment.to_json }
    13 end
    14 end

    JS側。リクエストヘッダにこれを入れる。僕はgoogle closure だからこれ
    39 my.App.prototype.onSubmitComment_ = function(e) {
    40 e.preventDefault();
    41 var xhr = new goog.net.XhrIo();
    42 xhr.headers.set('Accept', 'text/javascript'); // respond_to のformat.js に対応
    43 xhr.headers.set('X-Requested-With', 'XMLHttpRequest'); // request.xhr? を trueにする
    44 var query = new my.util.Uri(); // formのデータをシリアライズする人
    45 query.setRailsFormQuery(this.form_);
    46 this.eh_.listen(xhr, goog.net.EventType.COMPLETE,
    47 this.onCompleteSubmitComment_);
    48 xhr.send(this.form_.action, 'POST', query.toString());
    49 };


    参考
    http://lists.rubyonrails.org/pipermail/rails/2006-June/049297.html

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません