LINUX.ORG.RU

Вопрос по routing в Rails


0

1

Изучаю rails. Пытаюсь написать админилку, причём объединить все её ф-ции в один модуль, т.е.:

ruby script/generate scaffold Admin::Category title:string description:text

Хочу что бы админ мог управлять категориями продуктов к примеру. В результате модел создаётся с названием admin_categories, но хотелось бы что бы она называлась просто categories, конечно. Всё удаляю, делаю так:

ruby script/generate model category title:string description:text

ruby script/generate controller Admin::Categories

После этого копирую controllers/categories_controller.rb в controllers/admin/categories_controller.rb, копирую все views в соответствующий каталог, изменяю вещи типа new_category_path на new_admin_category_path, добавляю в config/routes.db:

map.namespace :admin |admin| admin.resources :categories end

вместо man.resources :categories

После этого на строчке содержащей form_for(@category) в new.html.erb получаю exception 'NoMethodError'. Подскажите как правильно сделать то что я хочу? В чём тут проблема?



Последнее исправление: psp13 (всего исправлений: 1)

http://rusrails.ru/ здесь неплохо написано. А у тебя нет метода. Смотри на какой файл ругается и смотри как называется и как должн называться метод. Подозреваю, что дело в первых строках: там имя контроллера. Но это в 3-ке, что у тебя не могу сказать точно.

wyldrodney
()
Ответ на: комментарий от wyldrodney

Спасибо за ссылку, но у меня с английским нормально. Только хотелось бы услышать совет опытного программиста, который здесь надеюсь присутствует. Я уже запутался. Конечно можно убрать scaffolding и закодить всё вручную, но что то мне подсказывает что есть более простой путь. Я так понимаю что form_for(@category) по умолчанию использует create_category_path, а надо что бы она использовала create_admin_category_path, но как сказать generator'у что бы model ныз-ся просто Category, а контроллёры были в Admin::.

psp13
() автор топика
Ответ на: комментарий от psp13

На правах анонимуса и переводчика капитана Очевидность, попробую ответить: если использовать рельсы 3, то лучше всего и перейти на руби 1.9.2, не 1.9.1(0). Далее, работают ли с руби 1.9 все те гемы, что вы используете? Если не работают, то можете сами подточить под нужную версию руби? Потом, на сколько много у вас зависимостей в рельсах, скажем аутентификация (если не самопись) или еще что, работает ли это с рельсами 3? Если ответ положительный на все вопросы то как минимум стоит посмотреть связку руби 1.9 и рельсы 3. Тестил рельсы 3 еще с альф\бет - не сильно нравились, было много детских багов (например с кодировками), в релиз кандидатах уже много чего поисправляли, в релизе ошибок не заметил (я про те ошибки, на которые натыкался сам). Сейчас готовлю некоторые проекты на переход к третьим рельсам.

П.С. опыт работы с рельсами еще с 1.какой_то_мохнатой версии, год эдак 2006.

anonymous
()

form_for([:admin,@category]) redirect_to([:admin,@category])

ciss
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.