/ / Controladores anidados Form_with Devise Error - html, ruby-on-rails, dispositivo, ruby-on-rails-5

Controladores anidados Form_with Devise Error - html, ruby-on-rails, devise, ruby-on-rails-5

Entonces, tengo un RailsApp y decidí hacer un controlador anidado a mis usuarios llamado backoffice.

Mis rutas para indexar están funcionando bien, pero cuando intento editar o crear un usuario, aparece el siguiente error:

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

Aquí están mis rutas:

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

devise_for :users

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

Estoy usando Rails 5.1.4, así que "form_tag" y "form_for" se reemplazan por "form_with"

Aquí está mi _form.html.erb donde está mi problema:

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

La estructura del controlador es

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

¿Podría ser el problema con el dispositivo? ¿O es solo un error del controlador anidado?

Respuestas

0 para la respuesta № 1

Probablemente deberías mover el devise_for llamar al :backoffice espacio de nombres ya que es donde se encuentra el recurso de los usuarios.

Si tu corres rails routes En la línea de comandos verás el problema. El intento está tratando de llamar users_path pero eso no existe, lo que existe es backoffice_users_path