【发布时间】:2016-01-31 11:59:44
【问题描述】:
我们有一个 RoR 4.2.5.1 API 服务器和一个 AngularJS 前端。
我正在努力让国际主义发挥作用,并将我的 en.yml 设置为这样
en:
activerecord:
attributes:
nas:
calledstationid: 'AP Mac'
errors:
models:
nas:
attributes:
calledstationid:
blank:
invalid:
taken: "has already been added to a location"
当我使用被调用的stationid 创建“nas”时,我期待“AP Mac 已添加到某个位置”。
相反,我得到“称为stationid...”
def create
@nas = Nas.new(
calledstationid: params[:box][:calledstationid]
)
respond_to do |format|
if @nas.save
format.json { render template: 'api/v1/boxes/show.json.jbuilder', status: 201 }
else
@errors = @nas.errors
format.json { render template: 'api/v1/shared/index.json.jbuilder', status: 422 }
end
end
end
当我使用 bang 时,我可以在日志中看到 calledstationid is 替换为 ap mac。
所以...我的问题是,为什么@nas.errors 对象中的字段名称没有更新?我怎样才能让它适用于多个语言环境。
-- 编辑--
错误对象:
@messages={:calledstationid=>["has already been added to a location"]}>
【问题讨论】:
-
要获取
@nas.errors中的值,您需要使用.save或.valid?。.save!不会填充它。 -
是的,我知道这一点。我正在使用!来证明这个值是正确的。
-
那么问题是什么?
-
阅读问题? :我的问题是,为什么@nas.errors 对象中的字段名称没有更新?我怎样才能让它适用于多个语言环境。”
-
完美,对它进行排序。如果你做出回答,我会接受。干杯!
标签: ruby-on-rails internationalization rails-i18n