При редактировании базовой модели пользователя в Rails из формы edit.html.erb я хотел бы применить специальную логику, если адрес электронной почты пользователя изменяется. У меня проблемы с попыткой настроить оператор IF в контроллере.
Вот что у меня в контроллере пользователей:
class UsersController < ApplicationController
.
.
.
def edit
@user = User.find(params[:id])
end
def update
current_email = @user.email
new_email = params[:user][:email]
if new_email = current_email
#update user as usual
else
#send email to new email address to confirm
end
end
.
.
end
При отладке я обнаружил, что строки 1 и 2 действия Обновить работают правильно. В частности, когда я изменяю электронную почту в форме редактирования пользователя, переменные устанавливаются правильно. Но оператор IF (строка 3 в действии Update) всегда возвращает true.
Вот форма edit.html.erb, которую я использую:
<%= form_for(@user) do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<%= f.label :first_name %><br />
<%= f.text_field :first_name %><br />
<%= f.label :last_name %><br />
<%= f.text_field :last_name %><br />
<%= f.label :email %><br />
<%= f.text_field :email %><br />
<%= f.label :password %><br />
<%= f.password_field :password %><br />
<%= f.label :password_confirmation, "Confirmation" %><br />
<%= f.password_field :password_confirmation %><br />
<%= f.submit "Update" %>
Любая помощь с этим будет принята с благодарностью.