我無法通過關聯從has_many驗證模型。下面是相關機型:Rails has_many:通過驗證
廣播模式
class Broadcast < ActiveRecord::Base
attr_accessible :content,
:expires,
:user_ids,
:user_id
has_many :users, through: :broadcast_receipts
has_many :broadcast_receipts, dependent: :destroy
validates :user_id, presence: true
validates :content, presence: true
end
廣播收據型號
class BroadcastReceipt < ActiveRecord::Base
belongs_to :broadcast
belongs_to :user
attr_accessible :user_id, :cleared, :broadcast_id
validates :user_id , presence: true
validates :broadcast_id , presence: true
end
還擁有通過廣播收據have_many廣播收據用戶的關聯。
的問題似乎是與以下行:
validates :broadcast_id , presence: true
每當我試圖創建一個廣播,我拿回滾未給出錯誤信息。但是,刪除上面的行時,一切都按預期工作。
這看起來像是在廣播收據創建之前沒有保存廣播的問題。
有沒有什麼辦法可以驗證在接收模型上設置的broadcast_id?
您可以創建一個自定義驗證器,如:validate:broadcast_id_exists'並檢查您的驗證是否存在數據庫中的廣播。 – Kaeros