Вам нужно добавить к нему маршрут, чтобы можно было использовать методы именованного пути.
Поскольку вы упомянули, что использовали скаффолдинг, вы, вероятно, настроили маршрут в качестве ресурса, поэтому все, что вам нужно сделать, это добавить метод:
map.resources :pages, :member => {:addchild => :get}
даст вам addchild_pages_path
(и фактически созданный путь будет выглядеть как /pages/:id/addchild
Затем вы используете его следующим образом: addchild_pages_path page
, не вызывайте метод id
напрямую, так как он не ресурсоемкий (вы не будете использовать to_param
в классе страницы, что может потребоваться сделать позже).
Если вы действительно хотите, чтобы URL отображался как /pages/addchild/:id
(что я не рекомендую), вы можете добавить
map.addchild_page "/pages/addchild/:id", :controller => :pages, :method => :addchild
перед строкой map.resources :pages
в вашем rout.rb, а затем используйте метод пути, как указано выше.