ruby-on-rails-3 - 使用 json 在 rails api 中创建操作

标签 ruby-on-rails-3 json api

我正在尝试在将充当 API 的 Rails Controller 中构建一个简单的操作。

在这种情况下,我尝试在客户端发布 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"}

最佳答案

不确定,但也许您想在 format.json block 中执行 .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 时它就不会中断。

关于ruby-on-rails-3 - 使用 json 在 rails api 中创建操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569192/

相关文章:

ruby-on-rails - Gitbash 错误 - rbenv : cannot find readlink - are you missing GNU coreutils?

java - 添加额外反斜杠的 JSON 对象

python - json.dump 一个 concurrent.futures.Future()?

c# - GPS定位API?

ruby-on-rails - Rmagick已安装: `require' : no such file to load -- RMagick (LoadError)

ruby-on-rails - Rails 中至少有 2 个 DateTime?

java - 如何解决 IBM Watson 中的 com.ibm.watson.developer_cloud.service.exception.NotFoundException?

facebook - 为什么图谱 API 不返回标记用户的最新照片?

ruby-on-rails - Ruby on Rails - 电子邮件确认链接给出 nomethoderror

python - 如何使用带有嵌套列表和字典的 Python 遍历 JSON 文件