我正在嘗試用戶設計可以一次添加多個用戶。基本上當有人創建一個帳戶,他們想要做的第一件事是添加一堆用戶使用可訪問的窗體...設計可邀請的批量邀請 - Ruby on rails
只是不知道如何複製窗體中的字段,並讓他們發送創建請求爲每個條目。
在此先感謝!
我正在嘗試用戶設計可以一次添加多個用戶。基本上當有人創建一個帳戶,他們想要做的第一件事是添加一堆用戶使用可訪問的窗體...設計可邀請的批量邀請 - Ruby on rails
只是不知道如何複製窗體中的字段,並讓他們發送創建請求爲每個條目。
在此先感謝!
這就是我該怎麼做的。
提供一個接受以逗號分隔的電子郵件列表的文本區域。定義 向此列表中的每封電子郵件發送邀請的新操作。
讓我們爲此示例假設用戶模型和用戶控制器。
定義batch_invite操作的路由。
resources :users do
collection do
post 'batch_invite'
end
end
在users_controller
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的電子郵件列表的表格定義batch_invite動作。
<%= 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_job或resque。 有railscasts演示這兩個後臺作業處理器的用法。
我認爲你使用的是devise_invitable gem。用戶是否僅使用電子郵件地址邀請一批用戶? – Shreyas
是的,你有兩個權利。使用Devise_invitable,您只需輸入電子郵件地址,然後用戶將收到一封電子郵件,並使用發送給他們的接受鏈接設置其密碼。 –