2011-08-14 8 views
3

が、私はこのような何かを持っている要求を投稿レールは、私は非常に要求が私のコントローラでは、レールに処理する方法を理解していないよ

$.post("/", {method_to_handle_request: "value"}, function(data) { 
    // do something with data 
}); 

これは間違っています:JavaScript内のdataはページにすぎません。したがって、私の質問は:どのように私はレールで要求を処理するのですか?私は「Agile Web Development with Rails」を読んできましたが、そこのセクションはあまり意味がありません。 ありがとう

答えて

5

レールは、適切なコントローラアクションを指すように構成されたルートを使用します。 config/routes.rbファイル内のルートを指定して、目的のアクションを実行してリクエストを送信する必要があります。あなたのコントローラでは、method_to_handle_requestを定義しています。あなたはそれのためのルートを定義することを確認する必要があります。 routes.rbファイル内でこれを行うには多くの方法があり、その詳細はthis guideに記載されています。

次に、method_to_handle_requestで、出力をJSONまたはXMLなどの形式でレンダリングまたは書式設定する必要があります。これをしないと、フラットなテンプレートのHTMLを返すだけになります。特に、JSONのセクションをレンダリングするためのgood resourceがあります。そして、あなたはAJAXであなたをそれを呼び出すときのconfig/routes.rbを

foos_controller.rb

def do_my_foo 
    foo = Foo.find(params[:id]) 
    # do some things to poor ole foo 
    some_cool_data_about_foo = ... 

    respond_to do |format| 
    format.json { render :json => some_cool_data_about_foo } 
    end 
end 

resources :foos do 
    member do 
    post 'do_my_foo' 
    end 
end 

:だからここ

は、私が何を意味するかの簡単な例ですあなたのハンドラでJSONifiedデータを取得します。

ええ、これはあなたが求めていたものだと願っています...

関連する問題