Вы можете определить пользовательский метод, а также определить маршруты для него
<%= 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
В контроллере найдите пользователя и обновите его атрибут пароля. Я отправляю идентификатор пользователя с формой
чей пароль должен быть изменен или вы можете сделать это в соответствии с вашими требованиями.