我正在尝试使用 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
一种在文本区域中接受以逗号分隔的电子邮件列表的表单。
<%= 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 %>
一些注意事项:
如果您喜欢精简控制器,则可以将逻辑移至模型,例如,通过在 User 模型中创建 send_batch_invitations 方法,并将 params[:user_emails] 作为参数从用户控制器传递给该方法。
由于发送邀请的方法可能需要足够的时间才能完成,因此我建议您将此任务分配给后台作业处理器,例如延迟作业 or resque。
有铁路广播演示了这两个后台作业处理器的用法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)