Skip to content

Instantly share code, notes, and snippets.

@reignmaker
Created March 14, 2012 18:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save reignmaker/2038323 to your computer and use it in GitHub Desktop.
Save reignmaker/2038323 to your computer and use it in GitHub Desktop.
<%= semantic_form_for user do |f| %>
<%= f.inputs "User" do %>
<%= f.input :name %>
<%= f.input :email %>
<label for="change_password" class="checkbox">
<input type="checkbox" name="change_password" id="change_password">
Change password?
</label>
<%= f.input :password %>
<%= f.input :password_confirmation %>
<%= f.input :sex %>
<%= f.input :about %>
<%= f.input :birthday %>
<%= f.input :skype %>
<%= f.input :facebook %>
<%= f.input :twitter %>
<% end -%>
<%= f.buttons %>
<% end -%>
<p><%= user.email %></p>
<p><%= user.name %></p>
<p><%= user.about %></p>
<p><%= user.birthday %></p>
<%= link_to "Edit profile", edit_user_path(user) %>
<%= render 'form', :user => @user %>
devise_for :users, :controllers => { :omniauth_callbacks => "omniauth_callbacks", :registrations => "registrations" } #do
resources :users, :only => [:show, :edit, :update] # users роут должен быть обязательно после devise
<%= render 'user', :user => @user %>
<%= render 'user', :user => @user %>
class UsersController < ApplicationController
respond_to :html
def show
@user = current_user
end
def edit
@user = User.find(current_user.id)
end
def update
@user = current_user
if params['change_password'] # проверяем, если пользователь хочет сменить пароль
if @user.update_with_password(params[:user]) # вспомогательные методы devise'а
sign_in @user, :bypass => true # авторизуем пользователя после обновления
respond_with @user
else
render "edit"
end
else
if @user.update_without_password(params[:user]) # обновлаем аттрибуты без пароля
sign_in @user, :bypass => true
respond_with @user
else
render "edit"
end
end
end
end
@Surgeon
Copy link

Surgeon commented Mar 15, 2012

Только у меня один вопрос: зачем для update вьюха?

@reignmaker
Copy link
Author

reignmaker commented Mar 15, 2012 via email

@Surgeon
Copy link

Surgeon commented Mar 15, 2012

Там ещё надо было поле current_password поставить, без него update_with_password не работает

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment