使用ActiveRecord选择输入时验证错误

时间:2016-01-15 10:07:28

标签: ruby-on-rails ruby activerecord

我有一个用于创建客户端的表单,在其中一个字段中我必须选择客户端的语言。在模型中,我有一个验证来检查字段是否为空,但即使提供了语言,也会显示验证错误。

查看:

ls

型号:

<%= f.input :locale, as: :select, collection: locale_for_select, prompt: false %>

控制器:

validates :locale, presence: true

我已经使用浏览器的开发人员工具检查实际发送的值,尽管模型验证失败。

对于发生了什么有什么想法?

修改

我注意到此错误仅在创建新客户端时发生,而不是在编辑现有客户端时发生。但是,当我编辑客户端时,这个新值不会持久保存到数据库

编辑2

  • 使用rails 3.2.22
  • 使用ruby 2.1.6

编辑3

这很奇怪,因为在相同的表单中,我有一些其他选择输入正常工作,并以相似的方式处理。

2 个答案:

答案 0 :(得分:0)

byte

答案 1 :(得分:0)

问题是我使用Globalize添加了一个本地化字段,我没有考虑this

  

因为globalize使用:locale键来指定语言环境   大规模赋值,你应该避免使用locale属性   父模型。

我为解决此问题所做的是将:locale属性重命名为:client-locale并执行相应的迁移以重命名该列。