【问题标题】:Creating new Model entry using json (Rails)使用 json (Rails) 创建新的模型条目
【发布时间】:2012-07-28 21:07:13
【问题描述】:

在我的 Rails 应用程序中,我试图从 json 客户端创建一个新用户。但是,我对作为 json 正文发送的内容有点坚持。该请求已正确发送到正确的控制器,但是我不断收到我的验证错误作为响应。它说电子邮件和用户名不能为空。我是不是做错了什么?

我正在发布到这个网址 localhost:3000/users.json

我正在尝试将此作为 json 请求发送:

{
 "user":
  {
   "email": "foo@foo.com",
   "username": "noob1",
  }
}

在我的创建操作中,我有这个:

 # POST /users
  # POST /users.json
  def create
    @user = User.new(params[:user])

    respond_to do |format|
      if @user.save
        format.html { redirect_to @user, notice: 'User was successfully created.' }
        format.json { render json: @user, status: :created, location: @user }
      else
        format.html { render action: "new" }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

这是我的路线:

users GET    /users(.:format)          users#index
          POST   /users(.:format)          users#create
 new_user GET    /users/new(.:format)      users#new
edit_user GET    /users/:id/edit(.:format) users#edit
     user GET    /users/:id(.:format)      users#show
          PUT    /users/:id(.:format)      users#update
          DELETE /users/:id(.:format)      users#destroy

【问题讨论】:

  • 你的路线是什么样的?
  • 路线更新问题。
  • 你的模型是什么样的?
  • 我的型号是一样的。可通过电子邮件和用户名访问 attr
  • 您是否尝试过不使用高级 REST chrome 扩展程序?也许这就是您的问题的原因。

标签: ruby-on-rails json


【解决方案1】:

您使用什么来发送 POST?确保将Content-Type 标头设置为application/json

另外,尝试发布到localhost:3000/users.json

【讨论】:

  • 我正在使用 Advanced Rest Client chrome 扩展。哎呀,我张贴到那个 usrl。错字。
猜你喜欢
  • 2013-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多