Tôi có một mô hình với thuộc tính được tuần tự hóa (mảng). Tôi muốn xác thực mô hình chỉ khi mỗi thành viên của mảng được bao gồm trong các tùy chọn được xác định trước.Làm cách nào để thực hiện xác thực tính bao gồm trên thuộc tính được tuần tự hóa?
Ví dụ: Tôi có mô hình Người có thuộc tính "tâm trạng". Người dùng có thể có nhiều tâm trạng, nhưng mỗi tâm trạng phải là "hạnh phúc", "buồn", "mệt mỏi" hoặc "tức giận".
Mô hình này sẽ là một cái gì đó như thế này:
class Person < ActiveRecord::Base
MOODS = %w[happy sad tired angry]
# validates :inclusion => { :in => MOODS }
attr_accessible :mood
serialize :mood
end
Các xác nhận nhận xét không hoạt động. Có cách nào để làm cho nó hoạt động hoặc tôi cần một xác nhận tùy chỉnh?
(. Lưu ý: Tôi không muốn tạo ra một mô hình Mood riêng)
Kiểm tra tài liệu này, http://guides.rubyonrails.org/active_record_validations_callbacks.html#inclusion. Bạn không phải tạo xác thực tùy chỉnh cho điều đó. – Chamnap
trên thuộc tính tuần tự hóa, bạn làm, nếu không giá trị được tuần tự được kiểm tra để bao gồm, có nghĩa là tâm trạng = [mệt mỏi, tức giận] sẽ thất bại vì MOODS.bao gồm? (Tâm trạng) là false –
Ah, tôi không thấy phương thức xê-ri hóa. Câu trả lời của bạn nên đúng lúc đó. – Chamnap