1
这是我第一次使用foreign_key,而且我不知道如何为它创建验证。问题是这样的:Ruby on Rails:在foreign_key模型验证中提供帮助
我正在创建一个聊天请求和聊天框应用程序。
我有这样的chatrequest模型。
chatrequest.rb
has_many :conversations
belongs_to :user
接下来,我有一个会话模型,它批量接受聊天请求的用户。
conversation.rb
belongs_to :chatrequest
belongs_to :sender, foreign_key: "sender_id", class_name: "User"
belongs_to :recipient, foreign_key: "recipient_id", class_name: "User"
该逻辑已经工作。我创建了一个的link_to功能,结合创建聊天会话模型,这是这样的:
<p>
<%= link_to 'Chat me', conversations_path(sender_id: current_user.id, recipient_id: @chatrequest.user.id, chatrequest_id: @chatrequest.id), method: 'POST' %>
</p>
现在,我想实现的是这三个验证:
- CURRENT_USER != recipient_id(不能接受自我请求)
- 将不会创建,除非current_user.id == sender_id
- 将不会创建,除非chatrequest.user.id == recipient_id 4.(可选)确保current_user(发件人)只接受sender_id(收件人)。
对不起,如果它有点难,我真的不知道该怎么做。如果您有代码段,请将其发布。提前致谢!
我很想知道如果我的方法工作,如果你找到另一种方式来做到这一点。 –