Błąd "undefined method `pages_path'" podczas tworzenia formularza

Witam,

Próbuję utworzyć formularz w panelu administracyjnym. Wszystkie kontrolery są zamknięte w przestrzeni nazw ‘admin’
Wpis w routes.rg:

namespace :admin do root :to => 'index#index' resources :menus resources :pages end
Kontroler, metoda new

def new @page = Page.new end
Sposób tworzenia formularza w widoku:

[code]# …
form_for(@page) do |f|

…[/code]

W ten sposób dostaje błąd typu: undefined method `pages_path’
Wiem że chodzi o to że powinno szukać metody ‘admin_pages_path’. Pytanie jak tego dokonać?

form_for [:admin,@page]

Już lepiej, ale tym razem kolejny błąd polega na tym że railsy nie widzą metod do generowania pól formularza :frowning:
Przykładowy błąd: undefined method `name’

Pokaż kod

  1. Widok _form.haml

[code]= form_for(:admin, @page) do |f|
%table{:id => ‘edit_menu’, :style => ‘border:4px solid #194674;padding-right:10px;padding-left:10px;’}
%tr
%td.short= ‘Nazwa (wer. polska)’
%td= f.text_field :name_pl

…[/code]

Pozostały kod podałem w 1 poście. :slight_smile:

form_for([:admin, @post]) do

form_for przyjmuje rekord jako pierwszy argument: https://github.com/rails/rails/blob/master/actionpack/lib/action_view/helpers/form_helper.rb#L301

Faktycznie działa :slight_smile: Widzę że tam samo jest w przypadku metody redirect_to. Np.

redirect_to([:admin, @page], :notice => 'Strona została dodana')

Tak, pod spodem wszystkie metody, który przyjmują rekord lub tablicę i generują z tego ścieżkę lub urla, używają polymorphic_path lub polymorphic_url: https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb#L58-90