4

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
4

2 に答える 2