从文本区域Rails中的电子邮件数组中创建许多对象

时间:2014-10-15 14:47:34

标签: ruby-on-rails email ruby-on-rails-4 invite

我正在创建一个应用程序,您可以邀请参与者加入项目。我希望能够一次邀请多个,就像在电子邮件收件人:字段中输入一堆电子邮件地址一样。提交邀请表单后,我的:参与者表格中的新对象将为每个相应的电子邮件创建,其中status_column标记为" welcome"。

我是新人,虽然我已经完成了更新。所有'以前的形式,我从来没有创造过'许多来自一个文本区域。

2 个答案:

答案 0 :(得分:2)

您可以拆分每个逗号和/或每个空格:

def create
  params[:project][:participants_addresses] = params[:project][:participants_addresses].split(/\s|,/) if params[:project].try(:[], :participants_addresses).present?

  # from now params[:project][:participants_addresses] is an array of Strings
  # you can loop on each email address and create Participant records in the DB,
  # having the status as "invited"
end

答案 1 :(得分:0)

您可以在表单中输入:

<%= f.text_field :emails_list %>

您要求用逗号分隔的电子邮件。

然后在控制器中你可以这样做:

emails = params[:your_object][:emails_list]
emails_list = emails.split ","

emails_list.each do |email| #iterate on email addresses
end