Devise_invitable app/views/devise/invitation.html.erb 'registration' 字段 RoR
Devise_invitable app/views/devise/invitation.html.erb 'registration' fields RoR
我敢肯定有人这样做过。我开始使用它,但我的应用程序崩溃了几次,所以我想我只是问问而不是继续让我的网络应用程序被遗忘。我正在使用 devise_invitable gem。它向受邀用户发送 link,他们单击 link,然后他们被定向到此视图 @ app/views/devise/invitation。html.erb:
<h2><%= t 'devise.invitations.edit.header' %></h2>
<%= simple_form_for resource, as: resource_name, url: invitation_path(resource_name), html: { method: :put } do |f| %>
<%= devise_error_messages! %>
<%= f.hidden_field :invitation_token %>
<%= f.input :password %>
<%= f.input :password_confirmation %>
<%= f.button :submit, t("devise.invitations.edit.submit_button") %>
<% end %>
我想添加一些字段,例如
<%= f.input :firstname %>
不过,当我这样做时,它 确实 出现在视图中,尽管它没有保存到用户模型。所以,我想我需要修改控制器。这就是我感到困惑的地方,我想是因为我试图在设计和 devise_invitable 自述文件之间来回切换。我正在使用 devise 3.5.6 和 devise_invitable 1.5.5。我尝试将上述输入添加到表单,并将应用程序控制器更改为包含
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) << :firstname
end
但这仍然没有保存到我的用户模型中。有人有什么建议吗?
您正在允许 params
设计 RegistrationsController
create
行动。您可以在定义中看到它,下面的 params sanitizer 用于 :sign_up
devise_parameter_sanitizer.for(:sign_up) << :firstname
在您的情况下,它必须是 :accept_invitation
,因为您使用的是 devise_invitable 并且表单提交 url 是 invitation_path,它将提交给 Devise::InvitationsController#update
devise_parameter_sanitizer.for(:accept_invitation) do |u|
u.permit(:firstname)
end
更多详情here
我敢肯定有人这样做过。我开始使用它,但我的应用程序崩溃了几次,所以我想我只是问问而不是继续让我的网络应用程序被遗忘。我正在使用 devise_invitable gem。它向受邀用户发送 link,他们单击 link,然后他们被定向到此视图 @ app/views/devise/invitation。html.erb:
<h2><%= t 'devise.invitations.edit.header' %></h2>
<%= simple_form_for resource, as: resource_name, url: invitation_path(resource_name), html: { method: :put } do |f| %>
<%= devise_error_messages! %>
<%= f.hidden_field :invitation_token %>
<%= f.input :password %>
<%= f.input :password_confirmation %>
<%= f.button :submit, t("devise.invitations.edit.submit_button") %>
<% end %>
我想添加一些字段,例如
<%= f.input :firstname %>
不过,当我这样做时,它 确实 出现在视图中,尽管它没有保存到用户模型。所以,我想我需要修改控制器。这就是我感到困惑的地方,我想是因为我试图在设计和 devise_invitable 自述文件之间来回切换。我正在使用 devise 3.5.6 和 devise_invitable 1.5.5。我尝试将上述输入添加到表单,并将应用程序控制器更改为包含
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) << :firstname
end
但这仍然没有保存到我的用户模型中。有人有什么建议吗?
您正在允许 params
设计 RegistrationsController
create
行动。您可以在定义中看到它,下面的 params sanitizer 用于 :sign_up
devise_parameter_sanitizer.for(:sign_up) << :firstname
在您的情况下,它必须是 :accept_invitation
,因为您使用的是 devise_invitable 并且表单提交 url 是 invitation_path,它将提交给 Devise::InvitationsController#update
devise_parameter_sanitizer.for(:accept_invitation) do |u|
u.permit(:firstname)
end
更多详情here