Tôi có mô hình sự kiện. Mỗi sự kiện có thể có nhiều phiên.Rails xác nhận rằng mối quan hệ Có nhiều có ít nhất 1 mục nhập
Tôi muốn đảm bảo rằng không có mô hình nào có thể tồn tại mà không có mô hình có ít nhất 1 phiên được liên kết với nó.
validates :sessions, :length => { :minimum => 1 }
Vấn đề là - khi tôi đi đến cố gắng tạo ra phiên trên một sự kiện đặc biệt bằng cách gọi phương pháp mô hình của tôi:
create_sessions()
nào làm điều gì đó như:
sessions.create(event_id: id,date: x,day_of_the_week:x.strftime("%A"),classPin: pin)
cho mỗi trong số ngày sự kiện sẽ chạy.
Nó không lưu với các lỗi:
ActiveRecord::RecordNotSaved in EventsController#create
You cannot call create unless the parent is saved
Tất nhiên - bởi thời điểm này kỷ lục sự kiện mới chưa được lưu - vì vậy sự liên kết này có thể chưa được tạo ra do tạo ra trên một hiệp hội không có sẵn cho đến khi cha mẹ được lưu! Vì vậy việc xác nhận hợp lệ giữa loại mối quan hệ này hoạt động như thế nào - vì xác thực xảy ra tại thời điểm tiết kiệm .... nhưng tôi muốn xác thực số lượng phiên sẽ lớn hơn 0 trước khi chúng tôi lưu sự kiện!
Xác thực phiên có xảy ra trong sự kiện lưu không? – RenegadeAndy
Các phiên sẽ không được xác thực theo mặc định trên 'lưu', bạn sẽ cần phải thêm' validates_associated: sessions' xem [Hướng dẫn xác thực Rails] (http://guides.rubyonrails.org/active_record_validations.html#validates-associated). –
Tính năng này có hoạt động không? Khi nào các phiên được lưu? – tompave