【问题标题】:Return json at create new row at database in Ruby On Rails在 Ruby On Rails 的数据库中创建新行时返回 json
【发布时间】:2013-06-14 15:28:38
【问题描述】:

大家好,我在 Rails 中制作一个带有后端的应用程序,我需要从 ajax 请求创建一个用户,并且服务器必须返回一个保存新用户的 json 对象。

这是我的 Rails 代码

class UsersController < ApplicationController

   def nuevo_usuario
      @u = User.new(params[:user])
      @u.save       
      respond_to do |format|
          format.json { render :json => @u }
      end
    end

end

这是javascript的代码

$.post("http://0.0.0.0:3000/users/nuevo_usuario.json", $("#resgistro-form").serialize(), function(data){});

然后服务器用这个响应

Started POST "/users/nuevo_usuario.json" for 127.0.0.1 at 2013-06-14 10:17:22 -0500
Processing by UsersController#nuevo_usuario as JSON
  Parameters: {"user"=>{"user"=>"prueba", "mail"=>"prueba@gmail.com", "password"=>"[FILTERED]"}}
WARNING: Can't verify CSRF token authenticity
   (0.5ms)  BEGIN
  SQL (72.1ms)  INSERT INTO "users" ("created_at", "mail", "password", "updated_at", "user") VALUES ($1, $2, $3, $4, $5) RETURNING "id"  [["created_at", Fri, 14 Jun 2013 15:17:22    UTC +00:00], ["mail", "prueba@gmail.com"], ["password", "preuba"], ["updated_at", Fri, 14 Jun 2013 15:17:22 UTC +00:00], ["user", "prueba"]]
   (18.2ms)  COMMIT
Completed 200 OK in 395ms (Views: 1.1ms | ActiveRecord: 310.0ms)

我没有收到我用 rails 发送的 json 对象。

如果您需要更多信息,请告诉我,谢谢 :)

【问题讨论】:

    标签: javascript ruby-on-rails json


    【解决方案1】:

    您是否只查看日志文件?这不包括实际的响应正文。

    【讨论】:

    • 我用 firebug 寻找响应体并且是空的,我开始认为这与跨域 ajax 请求有关
    【解决方案2】:

    我将我的代码上传到 heroku 并使用 phongap 编译了应用程序,它工作正常,我认为问题是跨域和跨浏览器 ajax 请求

    【讨论】:

      【解决方案3】:

      添加“respond_to :json”

      所以它是这样的:

      class UsersController < ApplicationController
             respond_to :json
      
         def nuevo_usuario
            @u = User.new(params[:user])
            @u.save       
            respond_to do |format|
                format.json { render :json => @u.as_json }
            end
          end
      
      end
      

      【讨论】:

      • 我在 nuevo_usuario 方法之前添加了 respond_to :json 并且没有工作,我还尝试删除 respond_to 代码块并将其替换为我在这里找到的 respond_with 函数stackoverflow.com/questions/8200929/… 但不起作用:(
      • 对不起,我看到我打错了。
      猜你喜欢
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      • 2011-05-06
      • 2023-04-03
      • 1970-01-01
      • 2013-04-29
      • 1970-01-01
      • 2017-01-15
      相关资源
      最近更新 更多