2017-08-11 3 views
0

私はチャットメッセージモデルとチャットメッセージアタッチメントモデルを持っています。ユーザーが添付ファイル付きのチャットメッセージを要求すると、まずチャットメッセージ自体が作成され、その後に添付ファイルが作成され、次にその2つの間の関連付けが作成されます。Railsモデル:メッセージと添付ファイルの依存性

問題は、チャットメッセージに本文が必要だが、添付ファイルがない場合のみです。添付ファイルがある場合、私はメッセージが体を必要としないようにしたいと思います。

メッセージの作成時に、事前に添付ファイルを作成する/しないことを確認して、検証を使用してこの要件をプリエンプティブに設定(または設定しない)するにはどうすればよいですか?

+1

同時にレコードを作成しないのはなぜですか?現在のコード(フォームビュー、コントローラーメソッド、モデル)を表示してください。 – spickermann

答えて

0

あなたのコントローラーはどのように見えますか?これは1つのリクエスト(通常は)で行われた場合、カスタムバリデーターを追加するだけです。たとえば:あなたはAttachmentモデルの検証を持っている場合

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.valid?でそれを確認することができます。

関連する問題