Ruby on rails 如何使用同一表单字段向多个收件人发送电子邮件
我有一个与每个记分板关联的邀请功能。每个记分板都有许多已发送的邀请,并且每个邀请都属于一个记分板。这项功能运行得非常好。当前界面允许管理员分别键入每个电子邮件地址以发送邀请 但是,我想改进界面,允许管理员以相同的形式键入多个电子邮件地址,以逗号分隔或突出显示,让用户知道电子邮件已完成,然后向所有这些电子邮件地址发送一封电子邮件 我不知道如何让我的表格接受多封用逗号或任何其他方式分隔的电子邮件?我认为rails并没有为此提供不同的表单帮助程序。我将如何在控制器中处理此问题?我将如何为此设置正则表达式?我从未实现过一个表单,它接受多个电子邮件地址,然后向每个地址发送一封电子邮件。关于这个主题的任何信息都将非常有用 新表单的代码Ruby on rails 如何使用同一表单字段向多个收件人发送电子邮件,ruby-on-rails,email,Ruby On Rails,Email,我有一个与每个记分板关联的邀请功能。每个记分板都有许多已发送的邀请,并且每个邀请都属于一个记分板。这项功能运行得非常好。当前界面允许管理员分别键入每个电子邮件地址以发送邀请 但是,我想改进界面,允许管理员以相同的形式键入多个电子邮件地址,以逗号分隔或突出显示,让用户知道电子邮件已完成,然后向所有这些电子邮件地址发送一封电子邮件 我不知道如何让我的表格接受多封用逗号或任何其他方式分隔的电子邮件?我认为rails并没有为此提供不同的表单帮助程序。我将如何在控制器中处理此问题?我将如何为此设置正则表达
<h1>Invitation</h1>
<div class="row">
<div class= "col-md-4 col-md-offset-4">
<%= form_for [@scoreboard, @invitation] do |f| %> <!-- you have to pass in the scoreboard id into the forms as well -->
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :recipient_name %>
<%= f.text_field :recipient_name, class: "form-control", placeholder: "First and last name." %>
<%= f.label :recipient_email, placeholder: "Enter email" %>
<%= f.text_field :recipient_email, class: "form-control", placeholder: "Enter a valid email address." %>
<%= f.submit "Send Invitation", class: "btn btn-primary" %>
<% end %>
</div>
</div>
我将编写另一种方法来拆分电子邮件参数,类似于
emails=params[:recipient\u email].split(“,”
)。这将创建一个由逗号分隔的所有电子邮件组成的数组。然后做:
@邀请=[]
email.each{| email |@邀请函
def create
@scoreboard = Scoreboard.find(params[:scoreboard_id])
@invitation = @scoreboard.sent_invitations.build(invitation_params)
if @invitation.save && User.exists?(email: @invitation.recipient_email) == true
flash[:success] = "Invitation sent successfully"
UserMailer.registered_invitation_email(@scoreboard, @invitation_email).deliver_now
redirect_to new_scoreboard_invitation_path
elsif
@invitation.save && User.exists?(email: @invitation.recipient_email) == false
UserMailer.non_registered_invitation_email(@scoreboard, @invitation).deliver_now
flash[:success] = "Invitation sent successfully"
redirect_to new_scoreboard_invitation_path
else
render 'new'
end
end
end