35

私は持っているモデル製品::車。その属性をどのように変換できますか?model in namespaceをどのように翻訳しますか?

私は既にこの試みている:

activerecord: 
    models: 
    products: 
     car: "Автомобиль" 
    attributes: 
    products: 
     car: 
     owner: "Владелец" 

そして、この:

activerecord: 
    models: 
    products_car: "Автомобиль" 
    attributes: 
    products_car: 
     owner: "Владелец" 

をしかし、私は製品を使用しようと:: Car.model_name.humanは、それはまだ "車" を言います。私の他の翻訳はうまくいき、言語は:ruに設定されています。

+0

もはや機能していませんこの回答を参照してください。http://stackoverflow.com/questions/ 2521383/activerecord-validates-custom-field-name/2522186#2522186 –

+1

@HarishShettyその答えはネームスペースの問題には全く役立ちません。 – lulalala

答えて

94

'model_name.human'ソースコードを確認して、 'i18n_key'メソッドが見つかりました。私はこれを試してみました:

irb(main):006:0> Products::Car.model_name.i18n_key 
=> :"products/car" 

は、その後、私はこれに私のYMLファイルを変更:

activerecord:  
    models: 
    products/car: "Автомобиль" 
    attributes: 
    products/car: 
     owner: "Владелец" 

、それが動作します!

+5

これを共有していただきありがとうございます。 – vise

+0

これを見つける方法を教えてくれてありがとう。名前空間が私を引きつけた後の単なるモデル名です。 – Thilo

0

戻ってこれに変換しているように見えるレール3.2.12のとおり:

activerecord: 
    models: 
    products: 
     car: "Автомобиль" 
    attributes: 
    products: 
     car: 
     owner: "Владелец" 

そしてproducts/car: "Автомобиль"

+1

3.2.13 '' 'products/car:' ''が動作しています。 – baxang

+4

レール4.1.4で 'product/car:'が動作しています –

関連する問題