如何将自定义字段添加到 devise_invitable 邀请表单
Posted
技术标签:
【中文标题】如何将自定义字段添加到 devise_invitable 邀请表单【英文标题】:How to add custom fields to devise_invitable invite form 【发布时间】: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 %>
【问题讨论】:
【参考方案1】:在 user.rb 中添加虚拟属性(attr_accessor: role),然后你就可以在里面使用它了
class User < ApplicationRecord
attr_accessor :role
end
【讨论】:
您应该在一个工作示例中格式化您的代码。虽然经验丰富的开发人员会理解这一点,但新开发人员可能无法理解您在此暗示的内容。 你能举个例子吗?因为我不是经验丰富的开发人员以上是关于如何将自定义字段添加到 devise_invitable 邀请表单的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 API 将自定义字段添加到 SalesForce 中的布局部分
如何将自定义字段添加到 devise_invitable 邀请表单
如何使用 drupal 6 中的自定义字段将自定义版本的节点/添加表单放在视图中?