Ruby on rails 在Rails 3中使用多个电子邮件字段设计Invitable

Ruby on rails 在Rails 3中使用多个电子邮件字段设计Invitable,ruby-on-rails,ruby,ruby-on-rails-3,email,devise,Ruby On Rails,Ruby,Ruby On Rails 3,Email,Devise,您好,我目前正在使用designe\u invitablegem允许用户邀请多个用户 但是,我当前的表单如下所示: .user-unit %h2 Invite = form_tag batch_invite_users_path, :method => :post do = label_tag "Emails" = text_field_tag :user_emails, @invalid_emails.try(:join, ','), class: 'input-

您好,我目前正在使用
designe\u invitable
gem允许用户邀请多个用户

但是,我当前的表单如下所示:

.user-unit
  %h2 Invite
  = form_tag batch_invite_users_path, :method => :post do
    = label_tag "Emails"
    = text_field_tag :user_emails, @invalid_emails.try(:join, ','), class: 'input-xxlarge'
    %br
    = submit_tag "Send", class: 'btn-primary'

- content_for :javascript do
  :javascript
    $(document).ready(function(){
      $('#user_emails').tokenField();
    })
  def batch_invite
    if request.post? && params[:user_emails]
      valid_emails = []
      @invalid_emails = []
      params[:user_emails].split(",").each do |email|
        if email =~ Devise.email_regexp
          user = User.invite!({:email => email}, current_user)
          user.roles << Role.find(3)
          valid_emails << email
        else
          @invalid_emails << email
        end
      end
      if valid_emails.empty?
        flash[:notice] = "No email have been sent."
      else
        redirect_to :back
        flash[:notice] = "An invitation has been sent to #{valid_emails.join(',')}."
      end
    end
  end
它允许多封电子邮件,但我想有一个表单,有4个电子邮件字段,然后每个电子邮件将被邀请

就这样,

我的控制器如下所示:

.user-unit
  %h2 Invite
  = form_tag batch_invite_users_path, :method => :post do
    = label_tag "Emails"
    = text_field_tag :user_emails, @invalid_emails.try(:join, ','), class: 'input-xxlarge'
    %br
    = submit_tag "Send", class: 'btn-primary'

- content_for :javascript do
  :javascript
    $(document).ready(function(){
      $('#user_emails').tokenField();
    })
  def batch_invite
    if request.post? && params[:user_emails]
      valid_emails = []
      @invalid_emails = []
      params[:user_emails].split(",").each do |email|
        if email =~ Devise.email_regexp
          user = User.invite!({:email => email}, current_user)
          user.roles << Role.find(3)
          valid_emails << email
        else
          @invalid_emails << email
        end
      end
      if valid_emails.empty?
        flash[:notice] = "No email have been sent."
      else
        redirect_to :back
        flash[:notice] = "An invitation has been sent to #{valid_emails.join(',')}."
      end
    end
  end
def批处理邀请
如果需要,请发送邮件参数[:用户\电子邮件]
有效的电子邮件=[]
@无效的_电子邮件=[]
参数[:user_email].split(“,”)。每个do|email|
如果电子邮件=~designe.email\u regexp
user=user.invite!({:email=>email},当前用户)

user.roles您可以使用
attr\u accesor

attr_accessor :email_field1, :email_field2, :email_field3, :email_field4
然后在表格中,您可以使用:

= f.text_field :email_field1
= f.text_field :email_field2
= f.text_field :email_field3
= f.text_field :email_field4
这些字段将在提交时作为参数发送,您可以在控制器中使用它们

将这些字段添加到
attr\u accesor
需要将它们添加到
attr\u accessible