1

我正在尝试进行扩散(您向很多用户发送电子邮件)。所以在我的模型中(使用 mongodb)

key :email, Array  

在我的控制器中:

@users = params[:user]
@emails = Array.new
@users.each do |user|
  @emails << User.find_by_username(user).email
end

因此,在链接中,我将数组作为参数传递:

<%= link_to "Create a diffusion", mailer_path(:user => User.all)%>

以我的形式:

<%= f.input :email, :as => :hidden, :input_html => { :value => @emails } %>

问题出在我的邮件中:

@message.email.each do |email|
  mail(:to => email, :subject => @message.subject)
end

问题是 @message 不是一个数组,是一个字符串。因此,该循环将是一次循环。我也尝试过 @message.email.split(",") 但不起作用。我认为如果@message 是一个数组会很棒(应该如何)

有人可以帮助我吗?提前致谢

4

2 回答 2

0

好吧,如果您的命名以某种方式反映了您正在处理的对象,也许您应该尝试:

@emails.each do |mail|
  mail(:to => mail, :subject => @message.subject, ...)
end

那么为何不:

User.all.each do |user|
  mail(:to => user, :subject => @message.subject, ...)
end
于 2013-08-28T12:11:51.310 回答
0

最后我解决了!问题是我没有传递数组,解决方案就在表单中。新表格应该是这样的:

<% @emails.each do |email| %>
  <%=f.input "email[#{email}]", :as => :text, :as => :hidden, :input_html => { :value => ""} %>
<% end %>
于 2013-08-28T17:38:52.423 回答