Rails footnotes — це зручний для користування інструмент, що надає можливості бачити додаткову інформацію про аплікацію під час розробки. Наприклад: змінні контролера, вміст сесії, запити до бази данних, куки, змінні оточення і т.д.
Щоб все це отримати вам не треба ніц, окрім бровзера.
Ви також можете легко розширити його фунціонал своїми індикаторами.
Нажаль за браком часу
@josevalim більше не може здійснювати його підстримку. Тому я пропоную
свою адаптацію цього гему для Rails 3.
Зміни які було внесено для гему:
- Плагін перетворено на гем;
- Виправлено застарілі виклики(deprecations), що використовувались Rails 2.x;
- Змінено процес завантаження.
Для використання з Rails 3 треба підключити гем в Gemfile
gem 'rails-footnotes',
:git => 'git://github.com/josevalim/rails-footnotes.git',
:branch => 'rails3', :group => :development
створити config/initializers/footnotes.rb
if defined?(Footnotes) & Rails.env.development?
Footnotes.run!
# Код ініціалізаціі гему
end
такий підхід дозволить вам гнучко підключати гем в різні середовища розробки, а також організувати опціональне підключення. Створити файл .footnotes в корені аплікації
.footnotes
true
І вичитувати його значення та підключати гем або ні. Це може буті корисно коли над проектом працюють кілька розробників і виористовують різні інструменти діагностики.
Можна гнучко керувати кількустю інформації, що пропонує гем і виводити тільки потрібні іникатори
Footnotes::Filter.notes = [:session, :cookies, :params, :filters, :log]
Приклад створення власного індикатора для відображення інформації про поточного користувача системи.
module Footnotes
module Notes
class CurrentUserNote < AbstractNote
# Тут ми отримуємо поточний контроллер
#
def initialize(controller)
@current_user = controller.instance_variable_get("@current_user")
end
# Тут визначається текст, що буде відображатись як назва індикатора
#
def title
"Current user: #{@current_user.name}"
end
# Індикатор буде відображено тільки якщо це метод поверне true
#
def valid?; @current_user; end
# Інформації, що її надає індикатор
#
def content
escape(@current_user.inspect)
end
end
end
end
Ну а на вигляд воно отаке ;-)

Приємних дебагів.
P.S. Побажання та зауваження приймаються.