如果我想要扩展一个嵌套在Gem中的类,并且不使用继承,而是通过class_eval
和模块来扩展类行为,那么推荐的方法是什么?例如,我想要为标签和分类创建永久链接(通过ActsAsTaggableOn和ActsAsCategory gem实现),它们定义了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博客/文档/要点来解决此问题。
LoadError: Expected app/models/tag.rb to define Tag
。 - MhdSyrwan