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.rbhttps://github.com/puffer/puffer_pages/blob/master/lib/puffer_pages/e...
>
> Вот примеры. В рельсах 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
--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "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
Комментариев нет:
Отправить комментарий