我试图发布到以下方法/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意味着什么,我将不得不做类似下面的事情?
data:{user:{name:xx,password:xx,password_confirmation:xx}}
I am trying to post to the following method /users.json
Here's my code in 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 endand inside my user params
def user_params params.require(:user).permit(:name, :password, :password_confirmation, :avatar) endI am using chrome Advanced REST client to post (http://postimg.org/image/fphun12fx/)
image http://postimg.org/image/fphun12fx/
Rails kept giving me error stating param not found :user, how do I create the param for user?
Also, if we have the parameter :user, does it mean for jQuery ajax, I would have to do something like the below?
data: { user: {name: xx, password: xx, password_confirmation: xx} }
最满意答案
当你写params.require(:user).permit(:name, :password, :password_confirmation, :avatar)作为强参数意味着你应该将你的参数嵌套在'user'键下,即你的params散列应该看起来像这样:
{ "user"=>{"name"=>"name", "password"=>"password"} }因此,在您的表单上只需使用rails表单构建器,或者如果您使用form_tag,则在“user”键下嵌套属性。
When you write params.require(:user).permit(:name, :password, :password_confirmation, :avatar) as strong parameters that means you should nest your params under 'user' key, i.e. your params hash should look something like this:
{ "user"=>{"name"=>"name", "password"=>"password"} }So, on your form simply use rails form builders or if you use a form_tag then nest attributes under the 'user' key.
更多推荐
发布评论