gpt4 book ai didi

ruby-on-rails - 设计创建时髦的编辑用户密码路径

转载 作者:太空宇宙 更新时间:2023-11-03 17:24:09 26 4
gpt4 key购买 nike

我在此处遵循解决方案 2 中有关如何允许用户在没有注册表的情况下更改密码的所有说明:

https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-edit-their-password

我也相应地更新了我的编辑表单以反射(reflect)新的 user_registration_path

<%= form_for(resource, :as => resource_name, :url => user_registration_path(resource_name), :html => { :method => :put }) do |f| %>

该路径显示在 rake 路由中。我没有得到的是当表单被渲染时,它被渲染成这样:

<form accept-charset="UTF-8" action="/users.user" class="edit_user" id="edit_user" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="D3ZBYyAfI+sXMsJiKy5+ZsjcISg8yqKTDAdXQm6Heqs=" /></div>

此操作 /users.user 有什么用?当我在编辑表单上点击“更新”时,这让我很震惊,我不确定它是从哪里生成这个 Action 的。我的 routes.rb 有这个:

devise_for :users, :skip => [:registrations]                                          
as :user do
get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'
put 'users' => 'devise/registrations#update', :as => 'user_registration'
end

我得到的最终错误如下:

ActionController::UnknownFormat in Devise::RegistrationsController#update 

最佳答案

您的 user_registration_path 似乎没有采用任何参数。由于您无论如何都要给它一个,因此它被解释为一种格式(如 RSS 或 XML)。这会导致 UnknownFormat 错误,因为您的更新操作不会处理不存在的 "user" 格式。

解决方案:只需从 user_registration_path 调用中删除 resource_name 参数即可。

关于ruby-on-rails - 设计创建时髦的编辑用户密码路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19039446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com