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