我正在使用globalize开展一个rails项目,其中我有一个名为 Product 的模型:
class Product < ActiveRecord::Base
translates :name, :description
validates :name, presence: true
end
问题是验证不适用于其他语言环境的更新,它正在处理第一个create方法,但每当我想用另一个语言环境更新对象时,它都不会检查因为名字的存在。示例如下:
Product.create!
(0.3ms) BEGIN
(0.2ms) ROLLBACK
ActiveRecord::RecordInvalid: Validation failed: Name can't be blank
创建产品并具有翻译后,在尝试更新其他区域设置时,不会检查验证程序,例如:
irb(main):009:0> p.update_attributes(name: "", locale: :es)
(0.2ms) BEGIN
(0.1ms) COMMIT
=> true
关于如何实现这一点的任何想法?
答案 0 :(得分:0)
在
<li>
您要将名称属性设置为&#34;&#34;
然而,在p.update_attributes(name: "", locale: :es)
中,您没有将价值传递给&#39; name&#39;
如果您愿意,可以将其用作Product.create!
。
答案 1 :(得分:0)
试试这个
class Product < ActiveRecord::Base
translates :name, :description
validates :name, presence: true
class Translation
# define translation validations here
validates :name, presence: true
end
end