【发布时间】:2015-03-17 23:56:19
【问题描述】:
我最近将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 %>
但我不知道如何在后续表格中预先填写收件人。
有什么建议可以解决这个问题吗?
【问题讨论】:
-
你为什么使用选择标签?
-
@kendotwill,因为如果发送用户选择,我希望消息能够发送给多个收件人。在我在这个问题中引用的特定用例中,我希望收件人字段预先填写一个选项(我单击了“给我发消息”按钮的用户),但如果发送用户想要添加更多收件人没关系。
标签: javascript ruby-on-rails ruby forms mailboxer