pt-BR.yml:
\n\npt-BR:\n activerecord:\n models:\n user: Usu\xc3\xa1rio\n project: Projeto\n attributes:\n user:\n name: O nome\n description: A descri\xc3\xa7\xc3\xa3o\n projects: Os projetos\n project:\n name: O nome\n errors:\n format: "%{attribute} %{message}"\n messages:\n accepted: deve ser aceito\n blank: n\xc3\xa3o pode ficar em branco\n ........\nRun Code Online (Sandbox Code Playgroud)\n\n楷模:
\n\nclass User < ApplicationRecord\n has_many :projects, dependent: :destroy, inverse_of: :user\n\n accepts_nested_attributes_for :projects, allow_destroy: true\nend\n\nclass Project < ApplicationRecord\n belongs_to :user, inverse_of: :projects\n\n validates :name, presence: true, length: { mininum: 3, maximum: 255 }\nend\nRun Code Online (Sandbox Code Playgroud)\n\n控制器:
\n\ndef update\n if @user.update(user_params)\n render json: @user\n else\n render json: { errors: @user.errors.full_messages }, status: :unprocessable_entity\n end\nend\nRun Code Online (Sandbox Code Playgroud)\n\n调用该方法时,所有错误消息都会被翻译.error.full_messages,除了来自项目对象的错误消息(正如您可能在上面注意到的,我正在使用accepts_nested_attributes_for)。
我总是收到以下错误消息:
\n\n{\n "errors": [\n "Projects name deve conter no m\xc3\xadnimo 3 caracteres"\n ] \n}\nRun Code Online (Sandbox Code Playgroud)\n\n如何翻译翻译文件中的项目和名称,甚至从错误消息中删除“项目%atribute%”(无需任何黑客攻击)?
\n小智 5
对于 Rails 5.2,我必须检查核心代码以发现它在嵌套属性的翻译中使用命名空间,如下所示:
pt-BR:
activerecord:
attributes:
user/projects:
name: O nome de um projeto
Run Code Online (Sandbox Code Playgroud)
因此,在“用户/项目”节点内部,您可以列出嵌套在用户中的项目的属性。