Каков рекомендуемый способ расширения поведения класса через class_eval
и модули (а не наследованием), если я хочу расширить класс, зарытый в Gem из приложения Rails 3?
Пример:
Я хочу добавить возможность создавать постоянные ссылки для тегов и категорий (через самоцветы ActsAsTaggableOn и ActsAsCategory).
Они определили модели Tag
и Category
.
Я хочу в основном сделать это:
Category.class_eval do
has_friendly_id :title
end
Tag.class_eval do
has_friendly_id :title
end
Даже если есть другие способы добавления этой функциональности, которая может быть специфичной для драгоценного камня, каков рекомендуемый способ добавления поведения к классам в приложении Rails 3, как это?
У меня есть несколько других драгоценных камней, которые я создал, которые я хочу сделать, например, модель Configuration
и модель Asset
. Я хотел бы иметь возможность добавить создать класс модели app/models/configuration.rb
для моего приложения, и он будет действовать так, как будто я просто сделал class_eval
.
В любом случае, как это должно работать? Я не могу найти ничего, что покрывало бы это из любого из текущих Rails 3 blogs/docs/gists.