我正在尝试创建一个选择的用户列表,然后在提交表单上将发送一封电子邮件。这样就欢迎这些人访问网站。问题是我似乎无法遍历我的复选框列表以便能够向每封电子邮件发送一封电子邮件。这是我的表格
<%= form_tag(invites_path) do %>
<% @contacts.each do |c|%>
<div>
<%= label_tag 'accept', c[:email] %>
<%= check_box_tag 'accept[]', c[:email], checked = true %>
<% end %>
<%= submit_tag "Send Invitations" %>
<% end %>
现在,invites_path 就是控制器所在的位置,c[:email] 是每个所需用户的电子邮件。现在这里是我的控制器以及我遇到问题的地方。
# if there is more than one checkbox selected
if not params[':accept'].nil?
params[':accept'].split.each do |u|
InvitesMailer.invite_confirm(current_customer, u).deliver
end
else # only one checkbox selected
InvitesMailer.invite_confirm(current_customer,params[':accept']).deliver
end
为什么我看不懂
如果我只选择一个或多个复选框,我会收到
wrong number of arguments (2 for 1)
此行的以下错误
InvitesMailer.invite_confirm(current_customer,params[':accept']).deliver
参数如下
{"utf8"=>"✓", "authenticity_token"=>"dNQPNGrOsw6bxRwAYxjNrC8qoqR+A228YsmTfYUCc3Y=", "accept"=>["example@gmail.com", "example2@gmail.com"],"commit"=>"Send Invitations"}
我还想指出,我尝试按照本教程在 Rails 上发送电子邮件 ruby 复选框,但我对复选框有点困惑
更新:对于我的邮件控制器
def invite_confirm(curuser,usemail)
@greeting = "Hi"
@user = curuser
mail to: usemail, subject: "WhereyouWhere Invitation"
end