默认情况下,设计需要当前密码确认才能更改用户详细信息。
通过将此代码添加到我的注册控制器,我可以使其不需要此确认密码:
protected
def update_resource(resource, params)
resource.update_without_password(params)
end
但是,我需要的是在没有当前密码确认的情况下更改有关个人资料(姓名,电子邮件,电话等)的任何信息。
同时,为了设置新密码,需要使用旧密码。
如您所见,我没有当前/旧密码列:
ActiveRecord::Schema.define(version: 20150311113109) do
create_table "users", force: true do |t|
t.string "email", default: "", null: false
t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
t.string "last_sign_in_ip"
t.datetime "created_at"
t.datetime "updated_at"
t.string "confirmation_token"
t.datetime "confirmed_at"
t.datetime "confirmation_sent_at"
t.string "unconfirmed_email"
t.string "first_name", null: false
t.string "last_name", null: false
t.string "telephone", null: false
t.date "birthday"
t.text "address"
t.integer "admin", default: 0, null: false
t.string "image_file_name"
t.string "image_content_type"
t.integer "image_file_size"
t.datetime "image_updated_at"
end
答案 0 :(得分:0)
您需要使用如下所示的proc添加验证:
class User < ActiveRecord::Base
validates_presence_of :current_password, on: :update, :if => proc { |user| user.password.present? }
end