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

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

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

提前致谢!

解决方法

我就是这样做的.

Provide a text area that accepts a comma-separated email list. Define
a new action that sends an invitation to each email in this list.

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

为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 %>

几个笔记:

>如果你喜欢你的控制器瘦,你可以将逻辑移动到模型,例如,在你的用户模型中创建一个send_batch_invitations方法,并从用户控制器传递params [:user_emails]作为参数.
>由于发送邀请的方法可能需要足够的时间才能完成,我建议您将此任务分配给后台作业处理器,例如delayed_jobresque.
railscasts演示了这两个后台作业处理器的用法.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...