Доступ к вспомогательным методам плагина и lib на рельсах - PullRequest
1 голос
/ 27 февраля 2010

В настоящее время я делювинг сообщества, использующего Community Engine, но мне нужно добавить несколько моделей.

Проблема в том, что мне нужны методы помощников, которые используются CE, но когда я пытаюсь получить доступ к новым разделам сайта, я получаю неопределенный метод (как показано ниже)

undefined method `logged_in?' for #<ActionView::Base:0x1048f3748>

В логин? метод находится вендор / плагины / community_engine / lib / authenticated_system.rb

Этот метод определен как вспомогательный метод:

# this is at vendor/plugins/community_engine/lib/authenticated_system.rb
def self.included(base)
  base.send :helper_method, :current_user, :current_user_session, :logged_in?, :admin?, :moderator?
end

Как я могу заставить мое приложение rails загружать все помощники и методы, объявленные в lib моих плагинов?

Ответы [ 2 ]

2 голосов
/ 04 ноября 2011

Вы можете отредактировать свой файл vendor / plugins / community_engine / init.rb и добавить эту строку, чтобы загрузить его:

ActionView::Base.send(:include, MyHelper)

и переместите вашего помощника в вашу папку vendor / plugins / community_engine / helpers

module MyHelper
  def my_method_here
    ...
  end
end

Надеюсь, это поможет!

0 голосов
/ 28 февраля 2010

Большинство сайтов, с которыми я работал, физически копируют файл authenticated_system.rb в #{RAILS_ROOT}/lib и регистрируют его.

Таким образом, вы можете переопределить методы, если вам нужно.

...