私は、フォームがそのサイトからサブミットされた後、バリデーションエラーメッセージを別のサイトに送信するレールアプリケーションを持っています。railsはajaxレスポンスでバリデーション属性名を変更します
私はカスタマイズする必要があるたくさんの列を持っていますが、今のところ私は正しく動作するようにしようとしています。私はen.ymlを変更して動作させようとしています。
#config/locales/en.yml
en:
activerecord:
attributes:
message:
msg_from_name:
one: "Your Name"
メッセージモデルで検証が呼び出されています。
#app/models/message.rb
class Message < ActiveRecord::Base
validates :msg_from_name, length: { minimum: 3, maximum: 20 }
end
msg_from_name
が検証されたときに今、それが返されます。
私が取得しようとしている何
「msg_from_nameは(最小は3つの文字である)短すぎる」です:
「あなたの名前があります短すぎます(最小は3文字です)。
検証中に、外部サイトに送信する属性名を変更するにはどうすればよいですか?私がしようとすると、 Ref
#config/locales/en.yml
en:
activerecord:
attributes:
message:
msg_from_name: "Your Name"
そして:
#app/models/message.rb
class Message < ActiveRecord::Base
validates :msg_from_name, length: { minimum: 3, maximum: 20 }
HUMANIZED_ATTRIBUTES = {
:msg_from_name => "First Name"
}
#Rails 4
def self.human_attribute_name(attr, options = {})
HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end
end
私は再び同じ出力を得る
はまだ機能していないコメントから変更を更新しました。私が使用している構文がビューにのみ適用されるか、ビューに必要なコードが、外部サイトにajaxでエラーとして送信されるものと異なるかどうかはわかりません。
http://stackoverflow.com/questions/5785503/change-error-field-name-in-rails –
@pitabasprathal質問を更新しました – jtlindsey