1

我正在尝试发布到以下方法 /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 Advanced REST 客户端发布http://postimg.org/image/fphun12fx/

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

Rails 一直给我错误提示找不到参数:用户,我如何为用户创建参数?

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

数据:{用户:{名称:xx,密码:xx,密码确认:xx}}

4

1 回答 1

0

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

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

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

于 2013-09-10T19:49:53.483 回答