Пространство имен, form_for и именованный маршрут

У меня есть два контроллера сгруппированы под admin пространство имен, как показано ниже:

namespace :admin do
  resources :projects
  get "profile", to: "users#edit"
  post "profile", to: "users#create"
end

В form_for для resource, он отлично работает, как описано в документации:

form_for [:admin, @project]

Но когда дело доходит до именованного маршрута, как указано выше admin/profileЯ понятия не имею, что поставить в качестве аргумента в form_for, Если я просто использую form_for(@user), edit действие работает нормально, и форма отображается правильно, но при отправке я получаю следующую ошибку:

No route matches [PATCH] "/2"

Когда я пытаюсь form_for [:admin, @user], форма не отображается с жалобами на:

undefined method `admin_user_path'

Как следуетform_for be constructed in a named route under a namespace?

1 ответ

Решение

Попробуй это:

form_for(@user, url: admin_profile_path) do |f|

Бежать rake routes перечислить все маршруты.

Другие вопросы по тегам