带有 I18n 数据的种子 rails 数据库
Seed rails db with I18n data
在 rails 5.2 上,我想用 :en 和 :pt 语言填充我的数据库,我尝试 :
Product.create!(
process: t('washed'),
category: coffee)
然后我在我的 en.yml 和 pt.yml 文件中给出翻译。我收到此错误消息:
NoMethodError: undefined method `t' for main:Object
有什么想法吗?
---已编辑----
我想我找到了解决方案,但我不能让它与嵌套属性一起工作:
在我的 seed.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>
视图显示整个散列:杯测笔记:{:nica_cp=>“café, limão”, :columb_cp=>“limão”}
知道我错过了什么吗?谢谢!!
t
对于 I18n.t
是 shorthand,但仅适用于视图和助手。在控制器或模型中使用 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:
```
有关详细信息,请参阅 Translation Variables。
在 rails 5.2 上,我想用 :en 和 :pt 语言填充我的数据库,我尝试 :
Product.create!(
process: t('washed'),
category: coffee)
然后我在我的 en.yml 和 pt.yml 文件中给出翻译。我收到此错误消息:
NoMethodError: undefined method `t' for main:Object
有什么想法吗?
---已编辑----
我想我找到了解决方案,但我不能让它与嵌套属性一起工作:
在我的 seed.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>
视图显示整个散列:杯测笔记:{:nica_cp=>“café, limão”, :columb_cp=>“limão”}
知道我错过了什么吗?谢谢!!
t
对于 I18n.t
是 shorthand,但仅适用于视图和助手。在控制器或模型中使用 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:
```
有关详细信息,请参阅 Translation Variables。