私はDeviseに基づいたモデルエージェンシーを持っています:
class Agency < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :name, :email, :phone, :address, :city, :state, :zip,
:notes, :is_admin, :password, :password_confirmation, :remember_me
protected
def password_required?
!persisted? || password.present? || password_confirmation.present?
end
end
また、active_scaffold に基づく AgenciesController もあります。
class Admin::AgenciesController < Admin::BaseController
before_filter :authorize_admin!
active_scaffold :agency do |conf|
actions.exclude :show
create.link.page = true
update.link.page = true
list.columns = [
:name, :email, :phone, :address, :city,
:state, :zip, :notes, :events, :is_admin
]
create.columns = [
:name, :email, :phone, :address, :city, :state, :zip,
:is_admin, :password, :password_confirmation
]
update.columns = [
:name, :email, :phone, :address, :city, :state, :zip,
:is_admin, :password, :password_confirmation
]
columns.add :password
columns.add :password_confirmation
columns[:password].form_ui = :password
columns[:password_confirmation].form_ui = :password
end
end
次に、代理店の更新フォームは次のとおりです。
ユーザーが password および password_confirmation フィールドへの入力を省略できるようにしたいと考えています。ただし、ユーザーがパスワード フィールドに入力する場合は、password_confirmation フィールドを必須にする必要があります。
password_required で問題をほぼ解決しましたか? 方法。しかし、クライアントで JavaScript の検証が必要なため、問題を完全に解決することはできません。
password および password_confirmation フィールドの JS 検証をクライアントから削除するにはどうすればよいですか?