我想要一个单独的链接仅用于在轨道上的红宝石中更改密码!我能怎么做?

时间:2016-04-25 12:00:43

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

我不想在设计中更改密码选项(编辑注册)。相反,我想在单独的页面中添加用于更改密码的链接或表单。任何人都可以帮助我!!!

1 个答案:

答案 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 %>