设计可邀请的批量邀请 – Ruby on rails

我正在尝试使用Devise invitable来一次添加多个用户。 基本上当有人创建一个帐户时,他们要做的第一件事就是使用可邀请的表单添加一堆用户……

只是不确定如何复制表单中的字段并让他们发送每个条目的创建请求。

提前致谢!

我就是这样做的。

提供接受以逗号分隔的电子邮件列表的文本区域。 定义一个新操作,向此列表中的每封电子邮件发送邀请。

让我们假设这个例子的用户模型和用户控制器。

为batch_invite操作定义路由。

resources :users do collection do post 'batch_invite' end end 

在users_controller中定义batch_invite操作

 def batch_invite #Validate the user_emails field isn't blank and emails are valid params[:user_emails].split(",").each do |email| User.invite!(:email => email) end #redirect_to appropriate path end 

在textarea中接受以逗号分隔的电子邮件列表的表单。

 <%= form_tag batch_invite_users_path, :method => :post do %> <%= label_tag "Email ids of people you'd like to invite." %> <%= text_area_tag :user_emails %> <%= submit_tag "Invite!" %> <% end %> 

几个笔记:

  1. 如果你喜欢你的控制器瘦,你可以将逻辑移动到模型,例如,通过在用户模型中创建send_batch_invitations方法,并将params [:user_emails]作为参数从用户控制器传递给该方法。

  2. 由于发送邀请的方法可能需要足够的时间才能完成,我建议您将此任务分配给后台作业处理器,例如delayed_job或resque 。 有一些railscast演示了这两个后台作业处理器的用法。