如何使用邮箱回复帖子的用户

时间:2014-04-14 22:48:50

标签: ruby-on-rails ruby ruby-on-rails-4 mailboxer

我一直在使用邮箱宝石为我的rails应用程序进行用户按摩。

出于某种原因,我无法呈现消息表单,并且我的值不会被传递,例如user.id 这样做的方法是什么?我知道我已经接近了,但我正在用这个来抚摸硬核 在我的观看/帖子/ show.html.erb中:

<strong>title & author</strong>
<h2><%= @post.title %></h2>

   <p><%= @post.author %></p>
</div>

<strong>course</strong><br />
<h1><%= @post.course %></h1>



<strong>school</strong><br />
<h1><%= @post.school %></h1>


 <strong>price</strong><br />
<h1><%= @post.price %></h1>

<p>
  <strong>Posted by</strong><br />
  <%= @post.email %>
    </p>
    <br />
  <h2>Description</h2>
   <h1><%= word_wrap(@post.description, :line_width => 8) %></h1>


   <br />
    DATE POSTED: <%= @post.created_at %><br /><br />


   </div>

  <%= link_to "reply", new_message_path %>
<!--%= render 'messages/form', conversation: conversation % -->

当我点击新邮件路径时,这是它转到的页面: 视图/消息/ new.html.erb

Send a message to

<%= @user.username %>
<%= form_tag({controller: "messages", action: "create"}, method: :post) do %>
 <%= label_tag :subject %>
 <%= text_field_tag :subject %>
<%= label :body, "Message text" %>
<%= text_area_tag :body %>
<%= hidden_field_tag(:user, "#{@user.id}") %>
<%= submit_tag 'Send message' %>
<% end %>

我想传递帖子用户名的值,或者将post.email传递给邮件表单。

我尝试这样做的另一种方式,我喜欢这样做的方式是     &lt;%= render&#39; messages / form&#39;,conversation:conversation%&gt; 但是当我这样做时,我得到了

undefined method error for 'conversation'

视图/消息/ _form.html.erb:

Reply:
 <%= form_for :message, url: [:reply, conversation] do |f| %>
 <%= f.text_area :body %>
 <%= f.submit "Send Message", class: 'btn btn-primary' %>
 <%= submit_tag 'Clear Reply Box', type: :reset, class: 'btn btn-danger' %>
 <% end %>

基本上我想在帖子中添加一个回复按钮,让用户向发布的用户发送消息。我正在使用设计,所有用户都已登录。

1 个答案:

答案 0 :(得分:1)

您应该在routes.rb ...

中定义嵌套在post下的新邮件
  resources :posts do
    resources :messages, only: [:new, :create]
  end

那会给你一条路 new_post_message获取/发布/:posts_id / messages /新消息#create

您可以将帖子指定为链接的一部分

<%= link_to 'reply', new_post_message_path(@post) %>

将param [:post_id]传递给messages控制器中的create方法,以便您可以检索帖子,将其设置为实例变量,并以view / messages / new格式使用它。