新手问题 accepts_nested_attributes_for validate

ly7524126 · June 23, 2017 · Last by ly7524126 replied at June 26, 2017 · 1729 hits
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 所以要用复数?

Reply to ly7524126

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

Reply to chenge

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

You need to Sign in before reply, if you don't have an account, please Sign up first.