加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 使用I18N从验证选项生成选择标记

发布时间:2020-12-17 03:45:51 所属栏目:百科 来源:网络整理
导读:是否可以从模型验证中创建选择标签而不会出现I18N问题? 例如,如果我有这样的模型: 模型: class Coffee ActiveRecord::Base SIZES = [ "small","medium","big" ] validates :size,:inclusion = { :in = SIZES,:message = "%{value} is not a valid size" }
是否可以从模型验证中创建选择标签而不会出现I18N问题?

例如,如果我有这样的模型:

模型:

class Coffee < ActiveRecord::Base
  SIZES = [ "small","medium","big" ]
  validates :size,:inclusion => { :in => SIZES,:message => "%{value} is not a valid size" }
end

形成:

<%= f.label :size %><br />  
<%= select(:coffee,:size,Coffee::SIZES.collect {|d| [d,d]}) %>

如何使这种语言独立?

解决方法

如果您试图使验证消息独立,那么您实际上并不需要提及哪个大小无效,只是确实如此.你正在传递一个HTML选择表单,如果他们选择了另一个大小,那么他们更可能会弄乱某些东西,所以不需要精确的错误信息.

对于选择文本本身,您可以将其传递给i18n系统并在其中处理它.通过使用Coffee :: SIZE.collect构建数组{| d | [t(“.#{d}”),d]}您可以在该视图的i18n文件中添加小,中,大文件,以根据您的验证选项获取本地化值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读