使用fields_for时,在Rails验证消息中禁止子记录名称

时间:2012-07-13 16:01:39

标签: ruby-on-rails validation model nested form-for

我有两种型号,定价和定价细节。定价has_many pricing_details。我有一个使用form_for的表单,因此我可以以相同的形式创建定价对象和详细信息,并将所有内容保存在一个保存调用中。

所有代码按预期运行,问题是,当我在pricing_details模型上省略验证字段时的验证消息如下所示:

“定价明细成本年度价格不能为空”

我的验证是:

def validate_cost
  field_name = PriceType.find(self.price_type_id).name
  if self.cost.blank?
    self.errors.add :cost, field_name + " cannot be blank"
  end
end

我想要的只是: “年度价格不能空白”

我可以用来抑制子模型和字段名称的语言环境有什么问题吗?我尝试过添加到base,就像这样:

self.errors.add :base, field_name + " cannot be blank"

但后来我得到“定价细节基础年度价格不能为空”。

1 个答案:

答案 0 :(得分:0)

您可以使用区域设置更改嵌套字段的名称。请参阅此回答https://stackoverflow.com/a/11129637/18038