我有一个眨眼系统,当点击“我感兴趣”时,它会向用户发送一条消息。我如何设置,以便用户点击“我感兴趣”的状态,它将自动向该用户发送消息。我想添加一种方法,以便在单击该状态时“我感兴趣”链接时,该用户将无法使用该链接。这是为了防止用户从相同的状态消息发送30条消息,这将导致垃圾邮件。文本可以保留在那里,但如果用户已经从状态使用该操作,则应从文本中删除该链接。
吸引控制者:
def interested
@intrigue = User.find(params[:id])
@intrigue = current_user
@recipient = Intrigue.find(params[:id])
@message = Message.create(:subject => "Someone is Interested in you",
:sender_id => @intrigue.id,
:recipient_id => @recipient.user_id,
:body => "I saw your date and I'm interested")
render :new, alert: 'Your message was sent.'
end
查看:
<% if current_user?(intrigue.user) %>
<%= link_to "delete", intrigue, method: :delete, data: { confirm: "You sure?" }%> <% end %> <% unless current_user?(intrigue.user) %> | <%= link_to "repost", repost_intrigue_path(intrigue), method: :post %> | <%= link_to "Interested", interested_intrigue_path(intrigue), method: :message %>
<% end %>
答案 0 :(得分:0)
如果Message
作为current_user
,sender
作为用户所在的页面,则需要一些方法来查找recipient
。像这样:
<% if current_user.has_sent_message?(@user) %>
Text only
<% else %>
<%= link_to ... %>
<% end %>
has_sent_message?
将是User
上的实例方法,例如:
def has_sent_message?(user)
Message.find_by_recipient_id_and_sender_id(user.id, self.id).present?
end