Rails 3 で仮想 (非永続) モデルを作成しました (以下を参照)。
モデルに翻訳を適用する必要がありますが、標準の翻訳の場所が機能していないようです。例えば
en:
activerecord:
attributes:
media_upload:
title: "My Title"
オプションの文字列パラメーターを使用して、これをラベルに直接適用できることはわかっています。f.label :title, t('activerecord.attributes.media_upload')
ただし、検証の結果として生じるエラー メッセージでは機能しません。同様に、Rails でネストされた仮想属性をローカライズするで提案されているように、ラベル ヘルパーの翻訳ファイルにキーを追加することもできますが、これも検証では機能しません。
helpers:
label:
media_upload:
title: "My Title"
関連するすべての検証メッセージを再定義する以外に、非永続モデルで属性のローカライズを行う方法はありますか??
サンプルモデルを以下に示します。
class MediaUpload
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :media_file, :title
validates_presence_of :media_file
validates_presence_of :title
def initialize(attributes = {})
unless attributes.nil?
attributes.each do |name, value|
send("#{name}=", value)
end
end
end
def persisted?
false
end
end