ruby-on-rails - Rails I18n,响应对象的占位符
问题描述
在 Rails i18n 上,我应该如何组织响应对象的属性占位符?
我正在开发 JSON API。例如,/api/v1/books/:id
返回这样的对象。
{
id: integer,
name: string,
author_name: string
}
如果这本书的作者被删除或缺席,我想返回Unknown Author
字符串作为author_name
. 我想Unknown Author
用 I18n 管理字符串。哪个命名空间适合放置占位符?
我正在考虑把它放在view
. 像这样,
views:
books:
show:
unknown_author: Unknown Author
解决方案
可以根据 rails 约定组织语言环境文件。所以 config/locales 目录将是:
|-defaults
|---es.rb
|---en.rb
|-models
|---book
|-----es.rb
|-----en.rb
|-views
|---defaults
|-----es.rb
|-----en.rb
|---books
|-----es.rb
|-----en.rb
|---users
|-----es.rb
|-----en.rb
|---navigation
|-----es.rb
|-----en.rb
要访问这些语言环境,我们需要明确告诉 rails:
# config/application.rb
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
因此,在书籍视图语言环境文件中,我们可以编写:
show:
unknown_author: Unknown Author
推荐阅读
- java - MULE ESB:如何修复错误:org.glassfish.grizzly.nio.SelectorRunner:doSelect 异常 java.lang.OutOfMemoryError?
- java - 列表
列表 继承解决方案 - javascript - Nestjs MongoDb 架构/接口信息复制
- react-native - React-Native Modal 挂了
- c# - 如何在 Xamarin 表单中将图像文件上传到 GoogleDrive
- c++ - 使用内联 asm 调用 WriteProcessMemory 时出错
- hyperlink - 检测服务器端是否正在播放视频/音频
- excel - VBA - 根据使用格式化的选定单元格值将数据拆分/提取到工作表中
- html - 用动画调整大小时重新排序框
- mysql - MySQL 索引 + 数学运算符