我正在尝试进行传播(您向许多用户发送电子邮件)。 所以在我的模型中(使用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是一个数组(它应该如何)将会很棒
有人可以帮帮我吗? 提前致谢答案 0 :(得分:0)
好吧,如果你的命名是以某种方式反映你正在处理的对象,也许你应该尝试:
@emails.each do |mail|
mail(:to => mail, :subject => @message.subject, ...)
end
为什么不:
User.all.each do |user|
mail(:to => user, :subject => @message.subject, ...)
end
答案 1 :(得分:0)
最后我解决了! 问题是我没有传递数组,解决方案是在表单中。新表格应该是:
<% @emails.each do |email| %>
<%=f.input "email[#{email}]", :as => :text, :as => :hidden, :input_html => { :value => ""} %>
<% end %>