пятница, 26 августа 2011 г.

Re: Разработка плагина. Проблемы с маршрутизацией и миграциями.

Это еще формация плагина. Engine я написал отдельно. Нужно
оттестировать и собрать. Я так понял что его нужно проинсталлить как
гем, а все остальное также - вызываем хелперы и работаем.

On Aug 26, 5:53 pm, pyromaniac - <kinwiz...@gmail.com> wrote:
> Да вот оно и без этого должно работать в engine
>
> 26 августа 2011 г. 16:09 пользователь Мохнатый
> <sergey.awane...@gmail.com>написал:
>
>
>
>
>
>
>
> > Получилось зацепить вьюшки вызовом append_view_path непосредственно в
> > контроллере с указанием прямого пути к вьюшкам.
>
> > On Aug 26, 4:40 pm, pyromaniac - <kinwiz...@gmail.com> wrote:
> > > А, ну да, ActionController. В любом случае, читаем сорцы
> >http://apidock.com/rails/AbstractController/ViewPaths/append_view_path
>
> > > 26 августа 2011 г. 15:38 пользователь Мохнатый
> > > <sergey.awane...@gmail.com>написал:
>
> > > > Рельсы 3. У ActionView::Base судя по всему нет метода view_paths, а у
> > > > ActionController::Base он frozen.
> > > > Я поднял /app уровнем выше чем /lib. Получилось, что для одного
> > > > контроллера вьюшки рендерятся а для второго упорно нет (в плагине 2
> > > > контроллера). В общем ерунда получается. Сижу дописываю Engine.
>
> > > > On Aug 26, 3:46 pm, pyromaniac - <kinwiz...@gmail.com> wrote:
> > > > > Чтобы виьюшки видели файлы, надо добавить не в $LOAD_PATH, а в
> > > > > ActionView::Base.view_paths. Кстати, рельсы 3, да?
>
> > > > > В каждом engine есть своя структура: /lib /lib/engine_name.rb
> > > > > /lib/engine_name/ /lib/engine_name/engine.rb И вот оба этих файла
> > > > грузятся
> > > > > автоматически и в них можно писать инициализационный код.
>
> > > >https://github.com/puffer/puffer_pages/blob/master/lib/puffer_pages.r..
> > ..
> > > > ..
>
> > > > > Вот примеры. В рельсах 3.1 каждый гем, у котороего есть Engine класс
> > ещё
> > > > и
> > > > > генерит таски для копирования миграций в приложение, а с версии 3.0
> > > > > приложение подхватывает что кгодно из engine гема, если оно лежит в
> > > > > соответствии с конвенциями. И то, это поведение можно
> > кастомизировать.
>
> >https://github.com/rails/rails/blob/master/railties/lib/rails/engine.rb-
> > > > > вот тут полно текста по этому поводу.
>
> > > > > 26 августа 2011 г. 13:48 пользователь Мохнатый
> > > > > <sergey.awane...@gmail.com>написал:
>
> > > > > > По третьей проблеме:
> > > > > > Взял тот же способ что и в плагине tinyMCE и создал 2 метода: один
> > для
> > > > > > котнтроллера - загружает опции и второй - хелпер, который выводит
> > ява-
> > > > > > скрипты. Заинклудил первый в ActionController::Base, второй
> > отправил
> > > > > > туда же но через метод 'helper'. Это сработало, но нет ли другого
> > > > > > способа? А то получается копипаст функционала другого плагина.
> > Далее,
> > > > > > плагин получился кривой - не пишет машруты, не умеет делать
> > миграции.
> > > > > > К тому же при обращении к вьюшкам плагина генерируется
> > > > > > MissingTemplate, хотя при инициализации я добавляю в $LOAD_PATH
> > путь
> > > > > > vendor/plugins/myplugin/lib/app/views. При просмотре трассировки
> > > > > > ошибки я вижу другой путь - vendor/plugins/myplugin/app/views. Что
> > я
> > > > > > делаю неправильно?
> > > > > > Написал еще и Engine, но здесь застопорился на следующем: как тут
> > > > > > добавить инициализацию? также создать init.rb?
>
> > > > > > On Aug 26, 10:12 am, Мохнатый <sergey.awane...@gmail.com> wrote:
> > > > > > > А и если получится тоже отпишусь.
>
> > > > > > > On Aug 26, 10:10 am, Мохнатый <sergey.awane...@gmail.com> wrote:
>
> > > > > > > > Спасибо, видимо таки придется делать Engine.
> > > > > > > > А вот по поводу третьей проблемы, я сейчас уже думаю разобрался
> > как
> > > > > > > > делать. Сначала попробую и, если не получится, то отпишусь.
>
> > > > > > > > On Aug 26, 9:56 am, pyromaniac - <kinwiz...@gmail.com> wrote:
>
> > > > > > > > > Первая и вторая проблема решаются таки созданием Engine.
> > Третья -
> > > > не
> > > > > > очень
> > > > > > > > > понял.
>
> > > > > > > > > 26 августа 2011 г. 8:30 пользователь Мохнатый
> > > > > > > > > <sergey.awane...@gmail.com>написал:
>
> > > > > > > > > > Всем привет. Пишу плагин, столкнулся с несколькими
> > проблемами.
> > > > Во-
> > > > > > > > > > первых изучение материалв показало, что сейчас пишутся либо
> > > > гемы
> > > > > > либо
> > > > > > > > > > Rails::Engine. Я решил не переделывать плагин в engine,
> > пока не
> > > > > > > > > > разберусь с текущими проблемами.
> > > > > > > > > > Что не работает:
> > > > > > > > > > 1. Приложение не видит машруты из плагина. Пробовал
> > создавать
> > > > > > > > > > routes.rb внутри плагина и там прописывать машруты.
> > Пробовал
> > > > > > инклудить
> > > > > > > > > > в ActionDispatch::Routing::RouteSet::Mapper свой модуль с
> > > > > > маршрутами.
> > > > > > > > > > Не работает в обоих случаях. Можно конечно и руками
> > прописывать
> > > > в
> > > > > > > > > > routes.rb приложения, но хочу разобраться, почему мои
> > действия
> > > > не
> > > > > > > > > > работают.
> > > > > > > > > > 2. Не работают миграции. Миграции я вынес в таск. Пробовал
> > > > > > запускать
> > > > > > > > > > таск при инициализации плагина - не вышло. Пробовал через
> > > > > > приложение.
> > > > > > > > > > В этом случае ошибок нет, все срабатывает, но таблица в
> > базе
> > > > данных
> > > > > > > > > > приложения не появляется. Миграции делал через
> > > > > > > > > > ActiveRecord::Migrator.migrate 'path'. После чего вызываю
> > таск
> > > > > > > > > > db:schema:dump.
> > > > > > > > > > 3. Не получается сделать метод, который при вызове его в
> > > > > > контроллере
> > > > > > > > > > добавлял бы во все вьюшки этого котроллера ява-скрипт. Я
> > > > написал
> > > > > > > > > > метод, который пытаюсь инклудить в ActionController::Base,
> > но у
> > > > > > меня
> > > > > > > > > > нет четкого понимания, что я делаю. Сижу разбираюсь, но
> > время
> > > > > > > > > > поджимает.
> > > > > > > > > > Заранее спасибо.
>
> > > > > > > > > > --
> > > > > > > > > > --
> > > > > > > > > > Данное сообщение отправлено Вам, так как Вы являетесь
> > > > подписчиком
> > > > > > группы
> > > > > > > > > > "RubyOnRails to russian" на группах Google.
> > > > > > > > > > FAQ группы находится по адресу:
> > > > > >http://ru.wikibooks.org/wiki/RubyFAQ
>
> > > > > > > > > > Для того, чтобы отправить сообщение в эту группу, пошлите
> > его
> > > > по
> > > > > > адресу
> > > > > > > > > > ror2ru@googlegroups.com
> > > > > > > > > > Чтобы отменить подписку на эту группу, отправьте сообщение
> > по
> > > > > > адресу:
> > > > > > > > > > ror2ru-unsubscribe@googlegroups.com
> > > > > > > > > > Дополнительные варианты находятся на странице группы
> > > > > > > > > >http://groups.google.com/group/ror2ru?hl=ru
>
> > > > > > --
> > > > > > --
> > > > > > Данное сообщение отправлено Вам, так как Вы являетесь подписчиком
> > > > группы
> > > > > > "RubyOnRails to russian" на группах Google.
> > > > > > FAQ группы находится по адресу:
> >http://ru.wikibooks.org/wiki/RubyFAQ
>
> > > > > > Для того, чтобы отправить сообщение в эту группу, пошлите его по
> > > > адресу
> > > > > > ror2ru@googlegroups.com
> > > > > > Чтобы отменить подписку на эту группу, отправьте сообщение по
> > адресу:
> > > > > > ror2ru-unsubscribe@googlegroups.com
> > > > > > Дополнительные варианты находятся на странице группы
> > > > > >http://groups.google.com/group/ror2ru?hl=ru
>
> > > > --
> > > > --
> > > > Данное сообщение отправлено Вам, так
>
> ...
>
> read more >>

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

Отправить комментарий