Có cách nào để kích hoạt xác thực chỉ trong các biểu mẫu cụ thể (hành động của bộ điều khiển), không phải trên toàn cầu ở mỗi lần lưu hoặc cập nhật không? Thứ gì đó giống như User.create(:validate=>true)
cờ.Chỉ có hiệu lực ở dạng cụ thể
Trả lời
Có, bạn có thể cung cấp các điều kiện để kiểm chứng thực, ví dụ:
validates_presence_of :something, :if => :special?
private
def make_sepcial
@special = true
end
def special?
@special
end
Bây giờ tất cả các bạn phải làm gì để bật các kiểm chứng thực là:
s = SomeModel.new
s.make_special
Vì vậy, tôi đã thiết lập đặc biệt để sai sau khi tiết kiệm mô hình, phải không? – methyl
Không. '@ special' chỉ là một biến mẫu. Trừ khi bạn có thêm công việc để làm sau đó bạn chỉ có thể để cho nó chết, nó sẽ không được tiếp tục để tiếp tục truy vấn cơ sở dữ liệu. – thomasfedb
Như bạn đã giải thích trong các ý kiến, bạn muốn bỏ qua xác nhận cho các bản ghi mới. Trong trường hợp đó, bạn có thể sử dụng câu trả lời thomasfedb, nhưng không sử dụng biến @special
, nhưng:
validates_presence_of :something, :if => :persisted?
này sẽ chỉ xác nhận cho lưu User
s, nhưng không phải cho mới User
s. Xem tài liệu API trên persisted?
.
Bạn cũng có thể sử dụng: trừ khi =>: tồn tại? nếu bạn muốn xác nhận ngược lại trên mới nhưng không muốn lưu. –
Đây là câu trả lời đúng – doz87
Điều này hơi cũ. Nhưng tôi thấy http://apidock.com/rails/Object/with_options là một cách hay để xử lý loại hành vi này.
- 1. Không thể nhận expand_aliases có hiệu lực
- 2. Giá trị hiệu lực của chỉ thị AngularJS
- 3. Wake + Khóa Wifi không có hiệu lực
- 4. GWT DataGrid setLoadingIndicator không có hiệu lực
- 5. Đặt NSFileCreationDate không có hiệu lực
- 6. Chỉ hiệu lực INSERT qua thủ tục lưu sẵn
- 7. URL Validation REGEX - URL chỉ còn hiệu lực với http: //
- 8. Định dạng có thể mở rộng ở Roslyn?
- 9. PHP setlocale không có hiệu lực
- 10. NSStepper trong NSTableCellView không có hiệu lực
- 11. android ImageView setPadding không có hiệu lực
- 12. Đóng một ByteArrayOutputStream không có hiệu lực?
- 13. UpdatePanel.Visible = true không có hiệu lực
- 14. Ký hiệu cắt giảm hiệu lực LaTeX
- 15. Bạn có thể chỉ có nút gửi ở dạng html không?
- 16. Vô hiệu hóa nút chuột có hiệu lực
- 17. ngừng hiệu lực trong cocos2d?
- 18. Tác giả chính xác có hiệu lực với Git SVN?
- 19. Lực lượng cụ thể Kích thước cấu trúc trong C
- 20. CSS có hiệu lực sau khi trang đã hiển thị
- 21. ánh xạ trong chỉ mục tạo trong elasticsearch qua sông mongodb không có hiệu lực
- 22. Làm cách nào để tôi có thể làm mất hiệu lực bộ nhớ cache đúng cách?
- 23. Dấu trang TDataset có hiệu lực trong bao lâu?
- 24. location.hash chỉ có hiệu lực một lần trong chrome và safari
- 25. Android - lề được chỉ định theo kiểu tùy chỉnh không có hiệu lực
- 26. Bố cục tự động của Xcode chỉ có hiệu lực trong viewDidAppear và điều này rất có vấn đề
- 27. Mã thông báo APNS có hiệu lực trong bao lâu?
- 28. Tôi có thể truy cập/dev/urandom với open_basedir có hiệu lực không?
- 29. Việc gán cho biến không có hiệu lực?
- 30. Cách sắp xếp theo nhãn JSF ở dạng có thể định dạng được
Tại sao bạn đang cố thực hiện việc này? Có lẽ chúng ta có thể đưa ra một câu trả lời tốt hơn nếu chúng ta biết lý do đằng sau câu hỏi của bạn. – rdvdijk
Tôi đã nhầm lẫn Mô hình người dùng, không tách rời khỏi hồ sơ, khi bạn đăng ký, bạn chỉ cần cung cấp một vài trường và phần còn lại là điền vào từ hành động chỉnh sửa của người dùng. – methyl
Btw bạn có thể vượt qua tất cả các xác nhận hợp lệ như: Model.save (false) – emrahbasman