0

私のRuby on Railsコードでは、json応答をクライアントに送り返したいと思っています。私はRuby on Railsを初めて使用するので、どうすればこれを行うことができるかわかりません。error = 1 and success = 0データがデータベースに保存されない場合はjsonデータとして送信したいのですが、正常に保存された場合は送信する必要がありsuccess = 1 and error = 0ます。以下のコードを参照してください

これが私のコントローラーです

class ContactsController < ApplicationController
  respond_to :json, :html
  def contacts
    error = 0
    success = 1

    @contacts = Contact.new(params[:contact])

    if @contacts.save
      respond_to do |format|
        format.json { render :json => @result.to_json }
      end
    else
      render "new"
    end
  end
end

ここに私のJavaScriptコードがあります

$('.signupbutton').click(function(e) {
        e.preventDefault();
        var data = $('#updatesBig').serialize();
        var url = 'contacts';
        console.log(data);
        $.ajax({
            type: 'POST',
            url: url,
            data: data,
            dataType: 'json',
            success: function(data) {
                console.log(data);
            }
        });
    });
4

2 に答える 2

4

他にもたくさんのエレガントな方法がありますが、これは正しいです:

class ContactsController < ApplicationController

  def contacts
    @contacts = Contact.new(params[:contact])
    if @contacts.save
       render :json => { :error => 0, :success => 1 }
    else
       render :json => { :error => 1, :success => 0 }
    end 
  end

end

routes.rb にもルートを追加します。HTML 応答を使用する必要がある場合は、respond_to do |format| を含める必要があります。

于 2012-07-13T11:50:08.613 に答える
0

JSONデータを受け入れるようにルートを調整する必要があります

match         'yoururl' =>  "contacts#contacts", :format => :json

その後、それは動作します

于 2012-07-13T11:50:31.250 に答える