validate :updatable? # First validation there is
with_options :if => Proc.new { |object| object.errors.empty? } do |updatable|
updatable.with_options :if => "self.current_step == basic" do |step|
validates .... bla-bla bla
Vì vậy, trước khi trình kiểm soát được thực hiện, chương trình con thể cập nhật được gọi và nó populates mảng errors[:base]
với các lỗi thích hợp, có nghĩa là đối tượng không thể cập nhật. Và tôi muốn nó bỏ qua phần còn lại của các xác nhận nếu có bất kỳ lỗi nào được tìm thấy trong chương trình con này, nhưng ví dụ trên là NOT làm việc - nó thực hiện tất cả các xác nhận hợp lệ.Rails lồng with_option: nếu sử dụng trong xác nhận
Nhưng, nếu tôi thay đổi :if => "self.current_step == basic"
thành :if => "self.errors.empty? && self.current_step == basic"
hoạt động như một sự quyến rũ.
Tôi đang làm gì sai? Ví dụ cho thấy, lồng nhau with_option
sẽ hoạt động.
Ai đó có thể giúp tôi không? Cảm ơn trước.
Dường như với tôi, rằng đó là lỗi, điều kiện gây ra không được hợp nhất với nhau, vì vậy chỉ cuối cùng trong số họ thực sự có liên quan. Hy vọng rằng ai đó sẽ chú ý đến điều này và nó sẽ được sửa chữa trong các phiên bản sau. – Dmitri