【发布时间】:2023-03-22 00:41:01
【问题描述】:
这是我第一次使用foreign_key,我不太知道如何为其创建验证。问题是这样的:
我正在创建一个聊天请求和聊天框应用程序。
我有这样的聊天请求模型。
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>
现在,我想要实现的是这 3 个验证:
- current_user != recipient_id(不能接受对自己的请求)
- 除非 current_user.id == sender_id 否则不会创建
- 除非 chatrequest.user.id == recipient_id 否则不会创建 4.(可选)确保 current_user(sender) 只接受 sender_id(recipient)。
对不起,如果有点难,我真的不知道该怎么办。如果您有代码 sn-ps,请同时发布。提前致谢!
【问题讨论】:
-
如果您找到另一种方法,我很想知道我的方法是否有效。
标签: ruby-on-rails ruby