【问题标题】:Create Action in a rails api with json使用 json 在 rails api 中创建动作
【发布时间】:2011-12-19 23:58:49
【问题描述】:

我正在尝试在作为 API 的 Rails 控制器中构建一个简单的操作。

在这种情况下,我尝试在客户端发布 json 编码字符串时运行创建。

现在我的工作方式是这样的:

def create
  @user = User.new.from_json(params[:user])
  respond_to do |format|
    if @user.save
      format.json { render json: @user, status: :created, location: @user }
    else
      format.json  { render json: @user.errors, status: :unprocessable_entity }
    end
  end
end

我不喜欢我如何依赖 to_json 调用来进行创建。现在我只响应一个 json 有效负载,但是如果我们决定将它扩展到 xml,那么这个代码就会中断。

有没有更简洁的方法可以从以 json 格式发布的数据创建新用户?

我尝试将 params[:user](即 json 字符串)传递给 User.new,但出现错误。

作为参考,我的 json 看起来像这样:

{"email":"email.address@gmail.com","password":"password"}

【问题讨论】:

    标签: ruby-on-rails-3 json api


    【解决方案1】:

    不确定,但也许您想在format.json 块中执行.from_json(params[:user]) 部分?

    def create
        @user = User.new
        respond_to do |format|
            format.json do
                if @user.from_json(params[:user]).save
                   #render user
                else
                   #render errors
                end
            end
            format.xml do
                if @user.from_xml(params[:user]).save
                else
                end
            end
        end
    end
    

    这样当您收到 xml 时它不会中断。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      • 1970-01-01
      相关资源
      最近更新 更多