Rails 4:编辑和更新用户属性

时间:2014-07-01 20:29:11

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个Rails 4应用程序,用户只需要通过电子邮件和密码进行注册和登录。但是用户拥有更多的属性,如图像和描述,因此我创建了一个编辑和更新操作,所以用户可以更新他们的图像和描述...这是我的代码:

控制器:

def edit
  @user = User.find(params[:id])
end

def update
@user = User.find(params[:id])
if @user.update_attributes(params[:user])
  redirect_to @user, :notice => 'Cadastro atualizado com sucesso!'
else
  render :edit
end
end

查看:(用户/编辑)

<%= render 'form' %>

路线:

resources :users, :only => [:show, :edit, :update], :as => :user _No route matches [PUT] "/users/1/edit"_

但是当我尝试更新时,我收到此消息:没有路由匹配[PUT]&#34; / users / 1 / edit&#34; 。有谁知道如何解决这个问题?谢谢!

当我运行rake路线时,我得到:

 edit_user GET      /users/:id/edit(.:format)              users#edit
  user GET      /users/:id(.:format)                   users#show
       PATCH    /users/:id(.:format)                   users#update
       PUT      /users/:id(.:format)                   users#update

1 个答案:

答案 0 :(得分:0)

我们可能需要查看表单以查看您正在使用的路径,但这听起来像是您尝试PUT到edit_user_path,而您确实需要PUT到{{ 1}}。编辑路径仅限GET。

此外,不是你问这个问题..但是在你的路线文件中,没有理由需要user_path部分。