edit.html.erbフォームからRailsで基本ユーザモデルを編集する場合、ユーザのメールアドレスが変更された場合に特別なロジックを適用したいと思います。コントローラにIF文を設定しようとするときに問題があります。ここで現在のModel属性とRails 3のedit.html.erbフォームフィールドエントリを比較します
は、私は、ユーザーのコントローラに持っているものです。
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文(Updateアクションの3行目)は常にtrueを返すようです。これですべてのヘルプは大歓迎されます
<%= 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" %>
:ここ
は、私が使用していますedit.html.erbフォームです。
重複答えなければなりません – phoet