嗨,我目前正在使用devise_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();
})
它允许多封电子邮件,但是我想拥有一个包含4个电子邮件字段的表单,然后将邀请每封电子邮件。
就像这样:http : //oi39.tinypic.com/2qn5kdk.jpg
我的控制器如下所示:
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
从params[:user_emails]
我刚刚分裂它成为数组。
如何获得4个电子邮件字段?我是否应该添加4个不同的电子邮件列以达到目的?
就像我将创建email_field_1
,email_field_2
,email_field_3
,email_field_4
等?
任何解决方法将不胜感激。
您可以使用attr_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_accesor
将需要将它们添加到attr_accessible
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句