Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何将json响应传递回客户端_Ruby On Rails_Ruby_Ruby On Rails 3_Jquery - Fatal编程技术网

Ruby on rails 如何将json响应传递回客户端

Ruby on rails 如何将json响应传递回客户端,ruby-on-rails,ruby,ruby-on-rails-3,jquery,Ruby On Rails,Ruby,Ruby On Rails 3,Jquery,在我的RubyonRails代码中,我希望将json响应发送回客户端。由于我是RubyonRails新手,我不知道如何才能做到这一点。如果数据未保存到数据库,并且如果成功保存,我想将error=1和success=0作为json数据发送,并且应该发送success=1和error=0,请参见下面的代码 这是我的控制器 class ContactsController < ApplicationController respond_to :json, :html def contac

在我的RubyonRails代码中,我希望将json响应发送回客户端。由于我是RubyonRails新手,我不知道如何才能做到这一点。如果数据未保存到数据库,并且如果成功保存,我想将
error=1和success=0作为json数据发送,并且应该发送
success=1和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

还有很多其他优雅的方式,但这是对的:

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
class contacts控制器{:error=>0,:success=>1}
其他的
render:json=>{:error=>1,:success=>0}
结束
结束
结束

还将路由添加到routes.rb。如果您需要使用html响应,您必须包括响应|格式|。

还有很多其他优雅的方式,但这是正确的:

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
class contacts控制器{:error=>0,:success=>1}
其他的
render:json=>{:error=>1,:success=>0}
结束
结束
结束

还将路由添加到routes.rb。如果您需要使用html响应,则必须包含respond|u to do | format |。

您必须调整路由以接受json数据

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

然后它会工作

您必须调整路由以接受json数据

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

然后它将工作

查看“respond|to do | format |”,因为这是您通常对不同请求格式、html、xml、json等进行响应的方式。@railsdog我将此代码添加到我的代码
if@contacts.save respond|to do | format | format.json{render:json=>@result.to|json}end else render“new”结束
,但这不起作用。它甚至没有向我显示任何错误。我认为您将很难获得AJAX请求,以点击
contacts
控制器中的
contacts
操作。我认为值得一看关于路由的Rails指南-请参阅上面的更新代码。目前,该代码已成功地将数据插入数据库。现在,我想将请求作为json发送回客户端。查看“respond_to do | format |”,因为这是您通常对不同请求格式、html、xml、json等的响应方式。@railsdog我将此代码添加到我的代码
if@contacts.save respond_to do | format | format.json{render:json=>@result.to|json}end else渲染“新建”结束
,但这不起作用。它甚至没有向我显示任何错误。我认为您将很难获得AJAX请求,以点击
contacts
控制器中的
contacts
操作。我认为值得一看关于路由的Rails指南-请参阅上面的更新代码。目前,该代码已成功地将数据插入数据库。现在我想将请求作为json发送回客户端。