/ / Вложените контролери Form_with Devise Error - html, руби-на-релси, изработени, руби-на-релси-5

Вложените контролери Form_with Devise Error - html, руби-на-релси, изработени, руби-на-релси-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
....

Може ли проблемът да бъде с измисли? Или това е просто вложена грешка на контролера?

Отговори:

0 за отговор № 1

Вероятно трябва да преместите devise_for обадете се в :backoffice като това е мястото, където се намира ресурсът на потребителите.

Ако тичаш rails routes в командния ред ще видите проблема. Devise се опитва да се обади users_path но това не съществува, какво съществува backoffice_users_path