2017-02-11 8 views
0

PT-BR.ymlRailsの5 - ネストされたモデルからの翻訳エラー

pt-BR: 
    activerecord: 
    models: 
     user: Usuário 
     project: Projeto 
    attributes: 
     user: 
     name: O nome 
     description: A descrição 
     projects: Os projetos 
     project: 
     name: O nome 
    errors: 
    format: "%{attribute} %{message}" 
    messages: 
     accepted: deve ser aceito 
     blank: não pode ficar em branco 
     ........ 

モデル:

class User < ApplicationRecord 
    has_many :projects, dependent: :destroy, inverse_of: :user 

    accepts_nested_attributes_for :projects, allow_destroy: true 
end 

class Project < ApplicationRecord 
    belongs_to :user, inverse_of: :projects 

    validates :name, presence: true, length: { mininum: 3, maximum: 255 } 
end 

コントローラー:

def update 
    if @user.update(user_params) 
    render json: @user 
    else 
    render json: { errors: @user.errors.full_messages }, status: :unprocessable_entity 
    end 
end 

すべてエラー.error.full_messagesが呼び出されると、プロジェクトのオブジェクトからのメッセージを除いて、メッセージが翻訳されています(前述のように、私はを使用しています)。私は常に次のエラーメッセージが受信してい

{ 
    "errors": [ 
    "Projects name deve conter no mínimo 3 caracteres" 
    ]  
} 

私は私の翻訳ファイルにプロジェクトを翻訳したり、削除することができますどのように「プロジェクトを%atribute%」からエラーメッセージ(ハックなし)?あなたはドキュメントが表示される場合

答えて

0

:そのエラー・ネームスペースは、あなたのモデルを追加してみてくださいする必要があり、通常のモデルのテキストとは異なり、エラーの名前空間の下に属性http://guides.rubyonrails.org/i18n.html#error-message-scopes

お知らせも合わせて activerecord.errors.models.[model_name].attributes.[attribute_name]

pt-BR: 
    activerecord: 
    models: 
     user: Usuário 
     project: Projeto 
    attributes: 
     user: 
     name: O nome 
     description: A descrição 
     projects: Os projetos 
     project: 
     name: O nome 
    errors: 
    format: "%{attribute} %{message}" 
    models: 
     user: Usuário 
     project: Projeto 
    attributes: 
     user: 
     name: O nome 
     description: A descrição 
     projects: Os projetos 
     project: 
     name: O nome 
    messages: 
     accepted: deve ser aceito 
     blank: não pode ficar em branco 
+0

ありがとうご回答ありがとうございます...しかし、私は本当にすべてのものを**エラー*キーの下に追加する必要はないと思っています...私が言ったように*すべてのエラーメッセージが翻訳されているからです.error.full_messagesメソッドが呼び出されたとき、projectsオブジェクト*から来るものを除いて。ですから、私はそれらを翻訳する方法を見つけようとしています。私はこのようなものを探しています[** question **](http://stackoverflow.com/questions/5941856/suppress-base-in-error-text-for-custom-validation-of-rails-nested-アトリビュート)(ただし、それは私のためには機能しません。 –

関連する問題