次のコードがあります。
validates :username,:password, :presence => {:message => 'fields must not be blank'}
フィールドが空白の場合、エラーメッセージを取得できません。
次のコードがあります。
validates :username,:password, :presence => {:message => 'fields must not be blank'}
フィールドが空白の場合、エラーメッセージを取得できません。
エラー配列を介してアクセスします。
<model_instance>.errors
その後、次のようにしてメッセージに個別にアクセスできます。
model.errors.full_messages.each do |message|
puts message
end
例えば
def create
@user = User.new(params[:user])
if @user.valid?
logger.warn("====valid==========#{@user.error.full_messages.inspect}============")
else
logger.warn("====error==========#{@user.error.full_messages.inspect}============")
end
end
端末でこれが何を出力するかを確認してください
よくわかりませんが、このようなものがうまくいきました(シナリオの例にすぎません):
def create
model_instance = Model.new
begin
if model_instance.save_model # custom save for model (if required)
# code
else
# code
end
rescue
p model_instance.errors # here you will be able to access them.
end
end
そのため、例外処理のみが導入されています。
もう1つの提案、質問のコード行、ユーザー名が空白の場合、エラーメッセージは「ユーザー名フィールドは空白にしないでください」になるため、特異なエラーメッセージを表示することをお勧めします:)
それが役立つことを願っています!!