Ruby on rails 如何在Rails 6.0中转换ActiveModel属性值
我有一个包含10种不同状态的状态表。列是id和name 当我在视图中显示“name”属性时(尤其是作为嵌套属性),我似乎不知道如何转换该值 例如:Ruby on rails 如何在Rails 6.0中转换ActiveModel属性值,ruby-on-rails,internationalization,Ruby On Rails,Internationalization,我有一个包含10种不同状态的状态表。列是id和name 当我在视图中显示“name”属性时(尤其是作为嵌套属性),我似乎不知道如何转换该值 例如: <%= t'@tank.status.name' %> 但它似乎无法访问这两个条目 如何转换嵌套属性值 编辑 这种草率的方法是可行的,但它似乎……只是错了 class Status < ApplicationRecord def name case id when 1 I18n.t('new') when 2
<%= t'@tank.status.name' %>
但它似乎无法访问这两个条目
如何转换嵌套属性值
编辑
这种草率的方法是可行的,但它似乎……只是错了
class Status < ApplicationRecord
def name
case id
when 1
I18n.t('new')
when 2
..
end
end
类状态
有没有更干净的方法?这段代码让我想洗个澡。缩进在YML文件中很重要,您可以尝试以下方法:
activerecord:
模型:
地位:
第一个:“身材”
其他:“身高”
属性:
状态/名称:
新的:“新潮”
然后Status.human\u attribute\u name('name.new')
将重新命名为“Nouveau”
查看Rails指南的详细信息-缩进在YML文件中很重要,您可以尝试以下方法:
activerecord:
模型:
地位:
第一个:“身材”
其他:“身高”
属性:
状态/名称:
新的:“新潮”
然后Status.human\u attribute\u name('name.new')
将重新命名为“Nouveau”
查看Rails指南的详细信息-我必须知道status.name的值吗?因为当我在视图中显示时,我不知道状态是什么,它是由用户动态修改的。@JeffO是的,i18n就是这样工作的。创建一些状态,然后让用户从中进行选择,这样您就可以添加那些i18n了。我想显示以前某个操作设置的记录的状态。用户没有通过选择输入设置状态。好的,然后您需要将i18n配置为所有可能的操作,例如:新建、编辑、删除…但是在视图中,我如何访问转换后的值而不知道它将是什么?我必须知道status.name的值吗?因为当我在视图中显示时,我不知道状态是什么,它是由用户动态修改的。@JeffO是的,i18n就是这样工作的。创建一些状态,然后让用户从中进行选择,这样您就可以添加那些i18n了。我想显示以前某个操作设置的记录的状态。用户没有通过选择输入设置状态。好的,那么您需要将i18n配置为所有可能的操作,例如:新建、编辑、删除……但是在视图中,如何在不知道转换值是什么的情况下访问该转换值?
class Status < ApplicationRecord
def name
case id
when 1
I18n.t('new')
when 2
..
end
end