我有一个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
答案 0 :(得分:0)
我们可能需要查看表单以查看您正在使用的路径,但这听起来像是您尝试PUT到edit_user_path
,而您确实需要PUT到{{ 1}}。编辑路径仅限GET。
此外,不是你问这个问题..但是在你的路线文件中,没有理由需要user_path
部分。