我的观点:
<div class="form-group">
<% if @product.errors.details[:amount].any? %>
<div class="has-error">
<%= f.label "#{t('product.shineer_irsen')}", class: 'control-label' %>
<%= f.number_field :amount, value: 0, min: 0, class: "form-control" %>
</div>
<% else %>
<%= f.label "#{t('product.shineer_irsen')}", class: 'control-label' %>
<%= f.number_field :amount, value: 0, min: 0, class: "form-control" %>
<% end %>
</div>
我想在输入字段中验证金额,我想将其错误消息更改为我的母语。
现在,错误消息是 error message
如何改变?请帮帮我。
产品型号:
class Product < ApplicationRecord
belongs_to :item
belongs_to :user
belongs_to :branch
validates :amount, numericality: {greater_than_or_equal_to: 0}
def item_name
item.try(:name)
end
def item_name=(query)
self.item = Item.find_by_name(query) if query.present?
end
def amount=(new_value)
if read_attribute(:amount)
@old_amount = read_attribute(:amount)
write_attribute(:amount, new_value.to_i + @old_amount)
else
write_attribute(:amount, new_value.to_i)
end
end
end
本地/ mn.yml的某些行
activerecord:
attributes:
...
errors:
models:
subcategory:
attributes:
category_id:
invalid: "ahaha"
blank: "хоосон байж болохгүй"
category:
blank: "сонгоогүй байна."
product:
attributes:
amount:
greater_than_or_equal_to: 'Оруулах утга 0-ээс их байх ёстой.'
答案 0 :(得分:1)
我想你要翻译&#34; Value必须大于或等于0&#34;如果是这样的话,你需要做的就是在语言环境文件上创建一个翻译。西班牙语将是这样的:
# config/locales/es.yml
es:
activerecord:
errors:
models:
product:
attributes:
amount:
greater_than_or_equal_to: 'What ever you want to say'
根据您的母语,您必须创建文件并定义消息,我认为您已经这样做了,因为您正在使用翻译:
#{t('product.shineer_irsen')}
您可以在此处找到更多信息:
http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models
答案 1 :(得分:0)
您可以自定义从模型验证中获得的错误消息,在这种情况下,您需要添加到模型中:
validates :age, numericality: {greater_than_or_equal_to: 0, message: 'Este campo tiene que ser positivo' }
有了这个,你不需要改变视图。