Rails4应用程序模型

时间:2014-03-21 07:20:10

标签: ruby-on-rails ruby-on-rails-4 models mongoid3

我有以下功能,我在很多模型中使用。我使用MongoID作为MongoDB包装器

def make_slug
  self.slug = self.name.downcase.gsub(/[^a-z1-9]+/, '').chomp('')
end

放置它的最佳位置是将其复制并粘贴到我的所有模型中。

对Rails4好的Slug Gem的任何推荐?

2 个答案:

答案 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