Как да направя модул за инициализиране на Rails 3 в скъпоценен камък

Просто се опитвам да науча някои основи за създаване на скъпоценен камък. Точно сега създадох инициализатор, който изглежда като...

# config/initializers/fun_logger.rb
module FunLogger
  def fun_before_filter
    logger.info("\n\n\nGOT IT!\n\n\n")
  end
end

ActionController::Base.send(:include, FunLogger)

Това ми позволява да добавя следното към моя ApplicationController и той отпечатва РАЗБРАХ! в дневника

before_filter :fun_before_filter 

И така, няколко неща, които се опитвам да разбера.

И така, за да създадете скъпоценен камък от това...

  1. Вярвам, че трябва да настроя това before_filter по друг начин, но не съм сигурен как да го направя.
  2. Вярвам, че този инициализатор трябва да бъде преместен в директорията lib и да се зареди автоматично по някакъв начин с приложението rails.

Правилни ли са тези вярвания и ако е така, как да се справя с това?


person Altonymous    schedule 04.10.2012    source източник


Отговори (1)


Искате да проверите Railties. Това ще накара вашия скъпоценен камък да изпълнява инициализатор или някое от другите специфични за Rails неща, които може да искате да постигнете.

Що се отнася до създаването на предишен филтър... това обикновено не е най-доброто решение и е трудно да се каже от извадката какво точно се опитвате да постигнете. По-обичаен начин скъпоценните камъни да добавят поведение към цикъла заявка/отговор е чрез добавяне на Rack междинен софтуер, който оставя контролерите на потребителя сами.

person willglynn    schedule 04.10.2012