class Gift < ActiveRecord::Base
has_many :contributions
accepts_nested_attributes_for :contributions, :reject_if => proc { |a| a['amount'].blank? }
Đóng góp có thuộc tính: biệt danh. Trong: biểu mẫu mới, nó được điền trước với tên thật của người dùng. Người dùng có thể quyết định thay đổi thành "Chú Bob" (hoặc bất kỳ điều gì). Thật không may, với: reject_if, nếu không có số tiền được chỉ định trong phần đóng góp, thay đổi biệt hiệu bị mất khi: tải lại mới trong trường hợp @gift không hợp lệ. Điều này xảy ra vì các đóng góp lồng nhau bị từ chối. Làm cách nào để chúng tôi giữ nguyên: thay đổi biệt hiệu và chỉ xử lý việc từ chối khi @gift thực sự được lưu?accept_nested_attributes_for &: reject_if. Làm thế nào để ngăn chặn từ chối cho đến khi hiệp hội phụ huynh tiết kiệm?
Có, tôi có validates_presence_of: số tiền trong Đóng góp. Khi biểu mẫu @gift được gửi với: 1) các trường Đóng góp trống, nó hoạt động. (Quà tặng loại bỏ tổ trống.) 2) với: số tiền, nó hoạt động. (Xác nhận được thực hiện.) 3) với một: biệt hiệu nhưng không: số tiền, nó không hoạt động. Đây là trường hợp mặc định, vì chúng tôi muốn biểu mẫu được điền sẵn với tên đầy đủ của người dùng trong: biệt hiệu. Thêm: reject_if => a ['amount']. Blank ?, loại bỏ bất kỳ thay đổi nào người dùng thực hiện thành biệt hiệu. Chúng tôi muốn những thay đổi đó được bảo tồn. Có lý? – Gavin
Nếu đó là trường hợp có thể bạn nên sửa đổi mệnh đề: reject_if thành {| a | ['amount']. && a ['biệt danh']. trống?} – EmFi