2

次のコードがあります。

validates :username,:password, :presence => {:message => 'fields must not be blank'}

フィールドが空白の場合、エラーメッセージを取得できません。

4

3 に答える 3

5

エラー配列を介してアクセスします。

<model_instance>.errors

その後、次のようにしてメッセージに個別にアクセスできます。

model.errors.full_messages.each do |message|
  puts message
end 
于 2012-10-03T06:49:05.920 に答える
1

例えば

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

端末でこれが何を出力するかを確認してください

于 2012-10-03T09:18:07.777 に答える
0

よくわかりませんが、このようなものがうまくいきました(シナリオの例にすぎません):

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つの提案、質問のコード行、ユーザー名が空白の場合、エラーメッセージは「ユーザー名フィールドは空白にしないでください」になるため、特異なエラーメッセージを表示することをお勧めします:)

それが役立つことを願っています!!

于 2012-10-03T08:26:35.767 に答える