种子轨数据库与I18n数据



在rails 5.2上,我想用:en和:pt语言填充我的数据库,我尝试:

Product.create!(
process:  t('washed'),
category: coffee)

然后我在en.yml和pt.yml文件中给出翻译。我收到这个错误消息:

NoMethodError: undefined method `t' for main:Object

有什么想法吗?

---编辑----

我想我找到了解决方案,但我无法使用嵌套属性:

在我的种子.rb:

Product.create!(
name:'Cerro de Jesus farm',
process: I18n.t('process'),
cupping_notes: I18n.t('cup_notes.nica_cp'),
category: coffee)

在我的pt.yml:

pt:
process: "lavado"
cup_notes:
nica_cp: 'café, limão'
columb_cp: 'limão'

在我看来:

<p><%= t('cup_notes', cupping_notes:@product.cupping_notes)%></p>

该视图显示整个散列:Cupping notes:{:nica_cp=>"café,limão",:columb_cp=>

知道我错过了什么吗?谢谢

tI18n.t的简写,但仅适用于视图和助手。在控制器或模型中使用I18n.t

https://guides.rubyonrails.org/i18n.html#the-public-i18n-api

如果你想把这部分观点纳入你的视野,你需要做以下事情:

pt.yml

pt:
process: "lavado"
cup_notes:
nica_cp: 'café, limão'
columb_cp: 'limão'

在您看来:

<p><%= t("cup_notes.#{@product.cupping_notes}")%></p>

供参考

您尝试使用:

<p><%= t('cup_notes', cupping_notes:@product.cupping_notes)%></p>

不起作用,因为第二个参数用于将变量传递给特定的翻译。

例如,如果我的翻译中有这个:

pt:
number_of_lemons: "%{number} limões"
``
Then I can do this in my view:

```有关详细信息,请参阅翻译变量。

最新更新