我最近添加Mailboxer
到我的 Rails 应用程序并且一切正常。
但是,我希望能够通过单击用户页面上的“向我发送消息”按钮来创建新消息,然后在创建消息的表单加载时已经填写收件人(使用前一页中的用户)。
有问题的特定领域:
<%= select_tag 'recipients', recipients_options, multiple: true, class: 'new_message_recipients_field' %>
作为参考,recipients_options
在这种情况下可能不会发挥作用,但它是所有用户的列表——我主要在从用户页面以外的任何地方创建消息时使用它——并且在我的消息中定义帮手
def recipients_options
s = ''
User.all.each do |user|
s << "<option value='#{user.id}'>#{user.first_name} #{user.last_name}</option>"
end
s.html_safe
end
我的messages_controller.rb
:
def new
end
def create
recipients = User.where(id: params['recipients'])
conversation = current_user.send_message(recipients, params[:message][:body], params[:message][:subject]).conversation
flash[:success] = "Message has been sent!"
redirect_to conversation_path(conversation)
end
我已经在每个用户页面上都有指向新消息表单的链接......
<%= link_to 'Message me', new_message_path %>
但我不知道如何在后续表格中预先填写收件人。
关于我将如何解决这个问题的任何建议?