【发布时间】:2015-03-17 12:56:02
【问题描述】:
我想使用devise-invitable gem 一次发送多个邀请。
new.html.erb
<h2>
<%= t "devise.invitations.new.header" %>
</h2>
<%= form_for resource, :as => resource_name, :url => invitation_path(resource_name), :html => {:method => :post} do |f| %>
<%= devise_error_messages! %>
<div>
<% resource.class.invite_key_fields.each do |field| -%>
<p><%= f.label field %><br />
<%= f.email_field field, placeholder: "Invitation email" %></p>
<% end -%>
<%= f.collection_select(:role_id, Role.all, :id, :role_name, :prompt => true) %>
</div>
<p>
<%= f.submit t("devise.invitations.new.submit_button") %>
</p>
<% end %>
我的控制器:-
class Users::InvitationsController < Devise::InvitationsController
def create
exit
if params[:user][:email]== "" || params[:user][:role_id] == ""
flash[:alert]="Please enter email first and Select any role for invitees"
redirect_to new_user_invitation_path
else
if User.invite!(:email => params[:user][:email], :company_id => current_user.id, :type => 'Employee', :role_id => params[:user][:role_id])
flash[:notice]="Invitation is send successfully."
redirect_to new_user_invitation_path
else
flash[:alert]="Invitation is not send."
redirect_to new_user_invitation_path
end
end
end
end
我认为一种解决方案是在邀请方法中传递逗号分隔的电子邮件,但我该如何传递呢?我真的不知道怎么做。
如果您有任何其他解决方案,请告诉我。
谢谢。
【问题讨论】:
-
试试这个
f.email_field :field, "emails[field][]" -
@Sontya :感谢您的回复,我尝试了您的解决方案,但它给了我一个错误“参数数量错误”
-
你在哪里得到那个错误..你写了什么
-
@Sontya :谢谢,但我已经解决了我的错误,感谢这个解决方案。它真的对我有用。
-
得到
undefined method "merge" for "emails[field][]":String任何想法?
标签: ruby-on-rails ruby-on-rails-3 devise devise-invitable