Tôi có một mô hình tương tự như sau,Rails có mặt xác nhận thất bại trên giá trị 0
class Activity < ActiveRecord::Base
attr_accessible :name, :admin
validates :name, :presence => true
validates :admin, :presence => true
end
Thuộc tính tên là một chuỗi và tài sản quản trị được định nghĩa là một boolean trong di chuyển.
Nếu tôi cố gắng tạo ra một thể hiện của mô hình trong giao diện điều khiển sử dụng,
a = Activity.create(:name => 'Test', :admin => 0)
Sau đó, xác nhận không nói rằng tôi cần phải cung cấp giá trị cho quản trị. Tại sao? Tôi đã cung cấp một giá trị.
Tôi có thể hiểu nếu tôi không cung cấp giá trị nào cả hoặc nếu tôi đã cung cấp nil. Nhưng tại sao một giá trị như 0 (hoặc thậm chí sai cho vấn đề đó) gây ra xác nhận để thất bại?
Làm cho ý nghĩa với tôi Tôi đoán . Nhưng tôi đoán tôi vẫn không đồng ý rằng false.blank? hoặc 0.blank? nên trả lại đúng – richard
Đủ công bằng, nhưng bạn sẽ phải thực hiện điều đó với những người đã viết Rails :) – zetetic
+1. Các giải pháp hoạt động. Nhưng tôi cũng muốn Rails xử lý tốt hơn. Thông báo lỗi khi sử dụng giải pháp ở đây là ': upgraded_kitchen_bathrooms => [" không được bao gồm trong danh sách "]', điều này thật kinh khủng khi xem xét sự đơn giản của những gì chúng ta đang theo sau. –