0
我有一個聊天消息模型和一個聊天消息附件模型。當用戶使用附件請求聊天消息時:首先創建聊天消息本身,然後創建附件,然後創建兩者之間的關聯。Rails模型:消息和依賴依賴
問題是我希望聊天消息需要身體,但前提是沒有附件。如果有附件,我希望消息不要求身體。
在創建消息時,如何知道附件將不會在手前創建,我該如何搶先設置(或不設置)此需求?
我有一個聊天消息模型和一個聊天消息附件模型。當用戶使用附件請求聊天消息時:首先創建聊天消息本身,然後創建附件,然後創建兩者之間的關聯。Rails模型:消息和依賴依賴
問題是我希望聊天消息需要身體,但前提是沒有附件。如果有附件,我希望消息不要求身體。
在創建消息時,如何知道附件將不會在手前創建,我該如何搶先設置(或不設置)此需求?
我不知道你的控制器是怎麼樣的,但是如果這是在一個請求中完成的(通常是這樣),你可以簡單地添加一個自定義的驗證器。例如:
class Message < ActiveRecord::Base
has_one :attachment
validate do
if attachment.nil?
errors.add(:body, 'must be present') if body.blank?
end
end
end
class Attachment < ActiveRecord::Base
belongs_to :message
end
如果您對Attachment
模型驗證,可以先通過attachment.valid?
檢查。
爲什麼不在同一時間創建記錄?請顯示您當前的代碼(表單視圖,控制器方法,模型)。 – spickermann