发布到Ruby on Rails JSON PUT

时间:2013-09-10 18:42:32

标签: jquery ruby-on-rails json

我想发布到以下方法/users.json

这是我在Ruby on Rails中的代码

# POST /users
# POST /users.json

def create
  @user = User.new(user_params)

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

并在我的用户参数内

def user_params
  params.require(:user).permit(:name, :password, :password_confirmation, :avatar)
end

我正在使用Chrome高级REST客户端发布http://postimg.org/image/fphun12fx/

image http://postimg.org/image/fphun12fx/

Rails一直给我错误说明未找到参数:用户,如何为用户创建参数?

另外,如果我们有参数:user,它对jQuery ajax意味着什么,我必须做类似下面的事情?

data:{user:{name:xx,password:xx,password_confirmation:xx}}

1 个答案:

答案 0 :(得分:0)

当您将params.require(:user).permit(:name, :password, :password_confirmation, :avatar)写为强参数时,意味着您应将params嵌套在“user”键下,即您的params散列应如下所示:

{ "user"=>{"name"=>"name", "password"=>"password"} }

因此,在您的表单上只需使用rails表单构建器,或者如果您使用form_tag,则在“user”键下嵌套属性。