2013-11-19 3 views
0

У меня есть система подмигивания, которая при нажатии «Я заинтересован» отправит пользователю сообщение. Как я могу настроить так, что если пользователь нажмет «Я заинтересован» из статуса, который он автоматически отправит этому пользователю. Я хочу добавить способ, чтобы при нажатии на ссылку «Мне интересно» этот статус становится недоступным для этих пользователей. Это делается для того, чтобы пользователь не мог отправлять 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

Вы должны были бы некоторые методологии посмотреть, если Message существует с current_usersender как и 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 
+0

"подмигивание" система использует систему входящих сообщений. Таким образом, уже существуют сообщения, установленные между отправителем и получателем. Поэтому было бы непрактично делать это, к сожалению. – pwz2000

Смежные вопросы