0

@errorsエラーメッセージをコントローラーに追加して、次のようにビューに表示するにはどうすればよいですか。

<%= @question.errors[:tag][0] %>

with タグはモデル要素ではありません。

4

2 に答える 2

1

Rails 検証ガイド のこの部分をご覧ください。それらは、目的のエラー メッセージを目的のハッシュ エントリに追加するだけのカスタム バリデータを作成することによって機能します。

あなたの場合、これは次のようになります。

class Question < ActiveRecord::Base
  validates_with :tag_validator
end

class TagValidator < ActiveModel::Validator
  def validate(question)
    unless question.special?
      question.errors[:tag] << 'Not special enough.'
    end
  end
end
于 2013-02-28T08:00:15.557 に答える
0

Rails でのエラー メッセージの処理は、3 つのステップで行われます。

  1. rails-validation-helpersを使用してアクティブなレコード オブジェクトを検証するか、@chaleyc で指定されたカスタム バリデーターを作成する
  2. AR検証メソッドを使用した ActiveRecord(AR) オブジェクトの検証
  3. ビューにエラーを表示し、ビュー ヘルパーを作成することは、Rails3 での通知とエラーのベスト プラクティスです。

これは、あなたが始めるための素敵なレールキャストです

于 2013-02-28T15:42:17.343 に答える