为什么我不能让Rails Mailboxer gem工作?

时间:2013-10-28 22:17:38

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

我正在使用rails 4中的邮箱gem。我正在尝试使用当用户转到另一个用户的配置文件时,他们点击该配置文件上的一个按钮,向第二个用户发送一条消息。例如,A转到B的配置文件并单击消息按钮。 B然后会收到一条消息。在个人资料页面上,我有以下代码:

<%=current_user.send_message(@user, "Body", "subject") %>

我也尝试将上面的代码放在link_to标记中,但这不起作用。在“接收消息”页面上,我从文档中获得了以下代码:

Conversations:

<%= current_user.mailbox.conversations %>


Inbox:

<%= current_user.mailbox.inbox %>

但是收件箱代码或会话代码中都没有显示任何内容。请帮忙。感谢。

1 个答案:

答案 0 :(得分:0)

如果您希望评估代码,请使用<%<%=用于在页面上写出内容。 此外,.send_message方法确实不应该在您的视图中。在控制器中创建操作,或创建整个服务对象并使其负责消息传递。

有一点是像这样的代码实际上不属于视图。但更重要的是,只有当用户点击链接时,才应该调用它。所以,简单的解决方案是:

  1. 在您的某个控制器中创建操作'send_message'
  2. 为此操作创建路线
  3. 将行current_user.send_message(@user, "Body", "subject")放入新创建的操作中,如果您不想使用此操作的模板,请使用重定向
  4. 并在您的视图中为此操作添加链接(或按钮)