新手问题 accepts_nested_attributes_for validate

ly7524126 · 2017年06月23日 · 最后由 ly7524126 回复于 2017年06月26日 · 1733 次阅读
class event < ActiveRecord::Base
  has_many :orders, dependent: :destroy
  accepts_nested_attributes_for :orders, reject_if: :all_blank, allow_destroy: true
end

class order < ActiveRecord::Base
  belongs_to :kinmu_keitai
  validates :order_code, presence: true
end

当 event.save 的时候 order 的验证 rollback
错误信息

"Order order code必须入力"

请问这个 Order order code 需要在哪定义
想把错误信息的字段转成文字
在 yml 里定义好像不行

activerecord:
    models:
      order: "南北"
    attributes:
      order:
        order_code: "北南" 

从错误信息来看 你没有提交 "order_code"

经过各种尝试 虽然不知道为什么 但这样改能取到值

activerecord:
    models:
      order: "南北"
    attributes:
      order:
        order_code: "北南" 
      orders:
        order_code: "北南" 

要在。yml 里面最加个 ordes,难道表关系用的是 ordes 所以要用复数?

ly7524126 回复

是的,按照英语来的,单词复数,多个订单。。

chenge 回复

可能惯性思维了 一般在.yml 里面都是按单数去声明, 在使用 accepts_nested_attributes_for 时在保存关联表的时候需要复数了。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号