我有以下功能,我在很多模型中使用。我使用MongoID作为MongoDB包装器
def make_slug
self.slug = self.name.downcase.gsub(/[^a-z1-9]+/, '').chomp('')
end
放置它的最佳位置是将其复制并粘贴到我的所有模型中。
对Rails4好的Slug Gem的任何推荐?
答案 0 :(得分:2)
所有模型都继承自ActiveRecord,您可以打开特征类以在其中添加单例方法并在所有模型中使用。
我选择的方法是将它放在lib目录下,并在我需要的每个模型中都需要它。
答案 1 :(得分:1)
我想你可以做一个mixin /模块,你需要在模型中包含这些功能。像这样:
模块示例:
module SlugMaker
def make_slug
# Do your magic here
end
end
然后将其包含在您的模型中:
class SuperAwesomeModel
include SlugMaker
def some_action
make_slug
end
end