![]() |
|
|
![]()
|
|
| segods |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.2.2008 Репутация: нет Всего: нет |
Делаю пример из книги и столкнулся с undefined method `scaffold'
В чем дело?
САМ пример контролера:
И миграции:
И сама страничка: NoMethodError in AdminController#index undefined method `scaffold' for AdminController:Class RAILS_ROOT: I:/InstantRails-2.0-win/rails_apps/magaz Application Trace | Framework Trace | Full Trace app/controllers/admin_controller.rb:2 script/server:3 Request Parameters: None Show session dump --- flash: !map:ActionController::Flash::FlashHash {} Response Headers: {"cookie"=>[], "Cache-Control"=>"no-cache"} Это сообщение отредактировал(а) segods - 17.2.2008, 14:34 |
||||||
|
|||||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 12 Всего: 56 |
Из Rails 2.0 был убран динамический скаффолдинг, за не надобностью... Те, кому его не хватает могут воспользоваться плагином active_scaffold...
Читай тут -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| segods |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.2.2008 Репутация: нет Всего: нет |
Почитал. Спасиб.
Но подскажи как мне добавить скаффолдинг именно в мой контроллер admin ? Ибо если выполнить ./script/generate scaffold product то по url /admin/ ничего не работает. |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 12 Всего: 56 |
Не внимательно ты читал похоже, надо
А контроллер будет согласно соглашению об именах называться products, а не admin... -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| segods |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.2.2008 Репутация: нет Всего: нет |
Хорошо, напишу я ./script/generate scaffold product title:string description:text image_url:string По соглашению о именах контроллер будет называться products, а что надо сделать что бы поменять контроллер на admin? ЗЫ: как же сложно переходить с гибких языков на шаблонизированные... |
|||
|
||||
| source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 12 Всего: 56 |
Я так понимаю ты хочешь сделать админку? ну так и сделай её по-человечески при помощи before-фильтров и одного роута map.connect 'admin/:controller/:action/:id'
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
| segods |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.2.2008 Репутация: нет Всего: нет |
Неа, с PHP на RoR ! Может быть только с начала у новичков складывается такое впечатление(надеюсь), но я уже больше всех ненавижу RoR. Нервная система уже дымится... На ПХП я бы этот долбаный интернет-магазин дааааавно написал бы, т.к где угодно и что угодно могу писать, а в RoR нет. (извините, я на эмоциях) И так ситуация в крации: -Купил все что связано с Руби и было на озоне, в том числе: "Гибкая разработка веб-приложений в среде Rails". -С "Hello, World!" проблем не было. Но следующий проект: интернет магазин (Книга написана для Rails 1.2, у мя 2.0.) Есть модель product и контроллер admin, в книге их связывали легко: depot> ruby script/generate scaffold product admin Естественно в 2.0 это не катит. Если создавать вот так: depot>ruby script/generate scaffold product title:string description:text image_url:string то создается "представление" и усё... По Вашему совету добавляю роут: map.connect 'admin/:controller/:action/:id' но ситуация остается той же... Что самое страшное, что суппорта вооообще никакого... Книга сама в 2.0 ничего не знает. Русские Форумы на пальцах одной руки можно посчитать, а более менее численный только один, этот. Единственная возможность что то прояснить, это ты) Как такие простые и элементарные вещи теперь делаются в версии 2.0 ? |
|||
|
||||
| source777 |
|
||||||||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 12 Всего: 56 |
Во-первых, РНР - это по большому счёту всего лишь шаблонизатор, а RoR - это не язык, а фреймворк, который использует самый гибкий из ныне существующих языков программирования Ruby. Просто RoR расчитан на опытных веб-разработчиков, которые понимают смысл MVC, если ты привык писать всё с ходу и на коленке, то RoR тебе будет совершенно не понятен, в смысле почему сделано именно так, а не иначе... Я лично делаю на РНР всё примерно так же как реализовано в RoR, но много времени ушло в РНР для того чтобы прийти к этому верному подходу, а в RoR уже всё готово, и это настоящее чудо...
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||||||||||||||
|
|||||||||||||||||
| segods |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.2.2008 Репутация: нет Всего: нет |
А что надо прописать для того что бы админка была не тут http://localhost:3000/admin/products , а тут http://localhost:3000/admin/ ?
Если ты понял по какой книге я вопросы задаю, тогда может сразу посоветуешь что как сделать? Просто и после генерации даже по http://localhost:3000/admin/products ничего доступно не было.
По-подробнее поясни. Я создал модель product, миграцию для нее. Также добавил контроллер admin(где и должен был быть "scaffold :product") и все. больше ничего не делал. Только пытался добавить скаффолдинг: depot>ruby script/generate scaffold product title:string description:text image_url:string Зачем я все купил? Потому что на работу приглашают, больший дефецит у них на Руби, вот интенсивно учу. ну на коленке никогда не писал, на PHP пишу с учетом MVC, пусть может менее гибком, но четкое разделение на три части есть. Ниже прикрепил routes.rb Присоединённый файл ( Кол-во скачиваний: 88 )
routes.rb 1,50 Kb |
||||
|
|||||
| source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 12 Всего: 56 |
В роутах верно прописал, а не работает из-за того, что скаффолдинг обламывается, т.к. ты вручную уже создал "модель product, миграцию для нее.", удали их и запусти скаффолдинг ещё раз.
Это сообщение отредактировал(а) source777 - 17.2.2008, 21:22 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
| segods |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.2.2008 Репутация: нет Всего: нет |
source777, спасибо тебе.
Супер! Получилось. Все отлично, только немного не нравится что помимо http://localhost:3000/admin/products/ этот интерфейс доступен по http://localhost:3000/products/ Не очень хорошо когда любой юзер с "улицы" сможет редактировать/удалять записи в БД. Догадываюсь что, что то надо подправить в routes.rb . Что именно? И есть ли где инфа про синтаксис этого файла? (по оглавлению в книгах не заметил) |
|||
|
||||
| source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 12 Всего: 56 |
чего уж там, все когда-то так писали, главное чтобы это осталось в прошлом
При этом лучше поместить функцию проверки авторизации в application.rb Добавлено через 1 минуту и 48 секунд Однако я всё-таки советую тебе спокойно читать книгу, а не париться преждевременно по таким пустякам, лишь из-за того, что ты до каких-то моментов ещё не дочитал... Добавлено через 4 минуты и 14 секунд
подсказываю, стр. 404 и т.д. Добавлено через 9 минут и 26 секунд Кстати чтобы всё-таки реализовать твою мечту, http://localhost:3000/admin/, надо вписать маршрут map.connect 'admin/:action/:id', :controller => 'products' -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
| fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: нет Всего: 27 |
Кстати, столкнулся с такой же проблемой, что вся newbie инфомация, книги и т.п. по rails 1.2
Но, что хорошо, обе версии могут спокойно сосуществовать. Я решил для себя учить по версии 1.2 и когда буду готов, перейду на 2.0 просто доставляешь. gem install -v1.2.4 --include-dependencies rails. делаешь проект rails _1.2.4_ <имя проекта> и погнал по книжке. -------------------- ![]() |
|||
|
||||
| Volniy_Strelok |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 13.9.2007 Репутация: нет Всего: нет |
fixxer, Спасибо очень помогло
|
|||
|
||||
| tanship |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 7.7.2008 Репутация: нет Всего: нет |
|
|||
|
||||
![]()
|
| Правила форума "Ruby on Rails" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Ruby On Rails | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |