Rails:我应该把这个方法放在哪里?

时间:2015-10-31 01:40:49

标签: ruby-on-rails ruby-on-rails-4 model-view-controller

我的应用程序中有多个模型用于不同类型的内容,我经常需要获取最近发布的模型。目前,我在我的应用程序控制器中使用helper_method :latest_content

这是放置此方法的最佳位置吗?如果是这样,我该如何为它编写rspec测试?

1 个答案:

答案 0 :(得分:3)

听起来你在多个模型中都有一个共同的功能。 Rails有concerns允许你这样做。

# app/models/concerns/searchable.rb
module Searchable
  extend ActiveSupport::Concern

  module ClassMethods
    def last_content
      # ... here whatever is the content of :last_content
    end
  end
end 


# app/models/model_x.rb
class ModelX < ActiveRecord::Base
  include Searchable
  ...
end

# app/models/model_y.rb
class ModelY < ActiveRecord::Base
  include Searchable
  ...
end