添加直接混乱链接

时间:2016-01-28 17:31:33

标签: ruby-on-rails messaging mailboxer

我有一个简单的rails应用程序,用户可以发布,其他用户A可以创建帖子,所有其他用户可以对该帖子发表评论,之后用户A可以向评论帖子的用户发送消息...

我们要做的是添加直接消息链接,如果用户点击该链接,将直接打开消息框,其中包含已添加到收件人中的用户名。

我正在使用mailboxer gem来实现消息传递功能。

我跟着这个tutorial

1 个答案:

答案 0 :(得分:0)

发送消息链接:

<%= link_to '', new_conversation_path(:recipient_id => @user.id), class: 'send-message-icon' %>

@ user.id是您要发送给的用户的ID。

_form:

<%= form_for :conversation, url: :conversations, html: { class: "" } do |f| %>
<div class="form-group">
  <%= f.label :recipients %>
  <%= hidden_field_tag(:recipient_id, "#{@user.id}") %></div>
<div class="form-group">
  <%= f.label :subject %>
  <%= f.text_field :subject, placeholder: "Subject", class: "form-control" %>
</div>
<div class="form-group">
  <%= f.label :message %>
  <%= f.text_area :body, class: 'form-control',placeholder: "Type your message here", rows: 4  %>
</div>

<%= f.submit "Send Message", class: "btn btn-success" %>

<% end %>

这将删除选择框并显示链接中设置的收件人的用户名。

控制器:

def new
    @user = User.find_by(id: params[:recipient_id])
  end

   def create
    recipients = User.find_by(id: params[:recipient_id])
    conversation = current_user.send_message(recipients, conversation_params[:body], conversation_params[:subject]).conversation
    flash[:success] = "Your message was successfully sent!"
    respond_to do |format|
      format.html {redirect_to conversation_path(conversation)}
      format.js
    end
  end

发送消息。