Как я могу изменить пароль пользователя с помощью пользовательского метода, используя Devise - PullRequest
0 голосов
/ 26 марта 2012

Я использую rails 3 с gem devise.Devise имеет встроенный метод для смены пароля. Но я хочу

, чтобы администратор мог сбросить пароль любого пользователя и как я могу это сделать, пожалуйста, помогите ..

1 Ответ

1 голос
/ 26 марта 2012

Вы можете определить пользовательский метод, а также определить маршруты для него

 <%= form_for(:user, :url => {:controller => '/administrator', :action =>                  'change_password',:id => @user.id}, :html => {:id => 'admin_update_form',:method => :put}) do |f| %>

<div class="change-pass">
  <h2>Change Passwords</h2>

  <div class="pass-detail">
    <div class="username-btn">
      <label>Passwords</label>
      <%= f.password_field :password, :class=> 'fields' %>
    </div>
    <div class="username-btn" style="margin-bottom:40px;">
      <label>Confirm Passwords</label>
      <%= f.password_field :password_confirmation, :class=> 'fields' %>
    </div>
    <%=hidden_field_tag 'user_ids',:id => 'user_ids'  %>
    <div class="username-btn_button">
      <%= f.submit 'change password', :id => 'password_btn' ,:class => 'reg-findjob'%>
    </div>
  </div>
</div>

В коде контроллера

def change_password
   @user = User.find(params[:id])
   if @user.update_attributes(:password => params[:user][:password],    :password_confirmation => params[:user][:password_confirmation])
     flash[:notice] = 'Password was changed successfully.'
     render :text => 'ok'
   else
    flash[:error]=[]
    @user.errors.full_messages.each do |error|
      flash[:error] << error
    end       
end

В контроллере найдите пользователя и обновите его атрибут пароля. Я отправляю идентификатор пользователя с формой

чей пароль должен быть изменен или вы можете сделать это в соответствии с вашими требованиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...