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?进行检查。

相关内容

最新更新