【发布时间】:2021-10-10 12:02:17
【问题描述】:
我需要在使用 devise_invitable 邀请用户时设置用户的角色。我已经阅读了关于如何完成此操作的答案以及文档,但我没有运气。除了一篇之外,每一篇文章都过时了。
为什么视图中没有填充角色字段?仅显示电子邮件字段。 我需要向我的 application_controller 添加一些东西吗?
routes.rb
Rails.application.routes.draw do
resources :assignments
resources :games
devise_for :users, :controllers => {registrations: 'registrations', invitations: 'users/invitations' }
root 'main#index'
end
invitations_controller.rb
class Users::InvitationsController < Devise::InvitationsController
before_action :configure_permitted_parameters
protected
# Permit the new params here.
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:invite, keys: [:email, :role])
end
end
app/views/devise/invitations/new.html.erb
<h2><%= t "devise.invitations.new.header" %></h2>
<%= simple_form_for(resource, as: resource_name, url: invitation_path(resource_name), html: { method: :post }) do |f| %>
<%= f.error_notification %>
<% resource.class.invite_key_fields.each do |field| -%>
<div class="form-inputs">
<%= f.input field %>
</div>
<% end -%>
<div class="form-actions">
<%= f.button :submit, t("devise.invitations.new.submit_button") %>
</div>
<% end %>
【问题讨论】:
标签: ruby-on-rails forms controller devise devise-invitable