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 回答