我不想在设计中更改密码选项(编辑注册)。相反,我想在单独的页面中添加用于更改密码的链接或表单。任何人都可以帮助我!!!
答案 0 :(得分:1)
使用简单的CRUD方法很容易做到这一点。为您的用户创建一个编辑视图,其中Rails表单以Devise的密码字段为目标。
edit.html.erb(在“视图”的“用户”文件夹中):
<%= form_for(@user) do |f| %>
<%= f.label :password %>
<%= f.text_field :password %>
<%= f.label :password_confirmation %>
<%= f.text_field :password_confirmation %>
<%= f.submit %>
<% end %>
在您的用户控制器中:
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
if @user.update(user_params)
redirect_to @user, notice: 'User was successfully updated.'
else
render :edit
end
end
private
def user_params
params.require(:user).permit(:password, :password_confirmation)
end
确保config / routes.rb文件中还有resources :users
编辑视图的链接类似于:
<%= link_to 'Edit User', edit_user_path %>