2015-04-12 90 views
1

我有三个型号,usermessagemessage_reply我该如何处理这个活动记录验证?

#user.rb 

class User < ActiveRecord::Base 
    has_many :message_replies 
    has_many :sent_messages, class_name: "Message", foreign_key: :sendor_id 
    has_many :received_messages, class_name: "Message", foreign_key: :receiver_id 
end 


#message.rb 

class Message < ActiveRecord::Base 
    belongs_to :Sendor, class_name: "user", foreign_key: :sendor_id 
    belongs_to :Receiver, class_name: "user", foreign_key: :receiver_id 
    has_many :message_replies 
end 

#message_reply.rb 

class MessageReply < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :message 
end 

我想验证在MessageReply:user_id要么是sendor_idMessage实例receiver_id,这MessageReply实例所属。

+0

“MessageReply”的用途是什么?它是什么时候创建的?创建时,它是否已经与'message'关联? – AbM

+0

@AbM'MessageReply'是回复特定'Message'的模型。它与我在问题中发布的模型代码所示的消息具有一对多关系。 –

回答

1

您使用custom validation方法并在您的MessageReply类或任何您认为合适的位置实施逻辑。

validates :check_user 

def check_user 
    [custom logic] 
end