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 № 1Probablemente 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