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

前端之家收集整理的这篇文章主要介绍了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演示了这两个后台作业处理器的用法.

猜你在找的Ruby相关文章