/ /入れ子になったコントローラForm_withデバイスエラー - html、ruby-on-rails、デバイス、ruby-on-rails-5

入れ子にされたコントローラForm_with Devise Error - html、ruby-on-rails、devise、ruby-on-rails-5

それで、私はRailsAppを持っています、そして私はbackofficeと呼ばれる私のユーザーに入れ子にされたコントローラーをすることに決めました。

私のインデックスへのルートはうまく機能しているしかし、ユーザーを編集または作成しようとすると、次のエラーが発生します。

NoMethodError in Backoffice::Users#new
undefined method `users_path" for #<#
<Class:0x007efc6d4fd1c8>:0x007efc6cd38708>
Did you mean?  user_session_path

これが私のルートです:

Rails.application.routes.draw do
resources :advertises
resources :categories

devise_for :users

namespace :backoffice do
resources :users, except: [:show]
end
end

私はRails 5.1.4を使っているので、 "form_tag"と "form_for"は "form_with"に置き換えられます。

これが私の問題である私の_form.html.erbです:

<%= form_with(model: user, root: true) do |form| %>

コントローラの構造は

class Backoffice::UsersController < BackofficeController
before_action :set_user, only: [:show, :edit, :update, :destroy]
before_action :pundit_user
....

問題は工夫にありますか?それとも、単にネストされたコントローラエラーですか?

回答:

回答№1は0

あなたはおそらく移動する必要があります devise_for あなたの :backoffice 名前空間は、ユーザーリソースが存在する場所です。

あなたが走ったら rails routes コマンドラインで問題がわかります。工夫は電話しようとしている users_path しかし、それは存在しません、存在するのは backoffice_users_path