我有一个带有 Devise 4.9 和 Devise Invitable 2.0.7 的 Rails 7 应用程序。
在
initializers/devise.rb
我已将此navigational_formats设置为:
config.navigational_formats = ['*/*', :html, :turbo_stream]
这允许设计表格正常工作。
但是,此配置破坏了设计邀请表单,例如: 这个表格
app/views/devise/invitations/new.html.erb
有
<%= form_for(resource, as: resource_name, url: invitation_path(resource_name), html: { method: :post }) do |f| %>
如果我尝试提交此表格,我会收到此错误消息:
undefined method `users_url' for #<Users::InvitationsController:0x00000000050dc0>
如果我将其添加到我的路线中
resources :users
然后我在提交表单时得到这个错误:
undefined method `empty?' for #<User id: nil, ...
如果我将
data: {turbo: false}
添加到邀请的 form_for,那么表单将提交,但它不适用于 turbo 流。
如何使用此 Devise 配置使 Devise Invitable 工作?
config.navigational_formats = ['*/*', :html, :turbo_stream]
或者我应该如何处理这种情况?