Tôi đang cố gắng cho phép người dùng thay đổi địa chỉ email của họ mà sử dụng làm tên người dùng duy nhất của họ. Mặc dù bản cập nhật không có lỗi, nhưng không có thay đổi nào được thực hiện đối với địa chỉ email cho người dùng trong cơ sở dữ liệu.Email thay đổi phát sinh không cập nhật email
Sau đây là các phần có liên quan của mã:
Mẫu:
<%= f.fields_for :user_account, @user.user_account do |user_account| %>
<p>Edit email address for account: <%= @user.user_account.email %></p>
<div class="field">
<%= user_account.label :new_email %><br />
<%= user_account.text_field :email, autocomplete: "off", value: nil %>
</div>
<div class="field">
<%= user_account.label :password %> <i>(please confirm the password associated with this account)</i><br />
<%= user_account.password_field :current_password, autocomplete: "off" %>
</div>
<%= hidden_field_tag 'form', 'email' %>
<div class="actions">
<%= user_account.submit "Edit" %>
</div>
điều khiển:
def update
respond_to do |format|
if params[:form] == 'email'
if @user.user_account.valid_password?(params[:user][:user_account_attributes][:current_password])
if @user.update(user_params)
format.html { redirect_to user_path(@user), :notice => 'your new email has been saved' }
format.json { render :show, status: :ok, location: @user }
else
format.html { render :edit }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
else
format.html { redirect_to edit_email_path(@user), :notice => 'incorrect password (email)' }
end
else ...
các user_params phương pháp:
def user_params
params.require(:user).permit(
:first_name, :middle_initial, :last_name,
:linkedin, :website, :facebook, :video, :phone_number,
:address_1, :address_2, :city, :zip_code,
:image, :number, :years_practicing, :neighborhood, :biography, :price, :status,
user_employments_attributes: [:id, :user_id, :company, :position, :start_date, :end_date, :info, :_destroy],
user_educations_attributes: [:id, :user_id, :school, :degree_title, :start_date, :end_date, :info, :_destroy],
user_account_attributes: [:id, :user_id, :email, :password, :password_confirmation, :_destroy],
user_category_ids:[])
end
mô hình tài khoản
sử dụng:
class UserAccount < ActiveRecord::Base
# Include default devise modules. Others available are:
# , :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable, :confirmable,
:recoverable, :rememberable, :trackable, :validatable
belongs_to :user
end
yep, đã có: ( – chris