Используйте одно действие для нескольких моделей

У меня есть около 5 моделей, которые ведут себя очень похоже. На самом деле, я бы хотел, чтобы они поделились действием для их отображения. Например, для моделей Car, Truck,Ван, я хочу иметь такое определение, как:

[Car, Truck, Van].each do |Model|
  action_for Model do #I made this up to show what I mean
    def index
      @model = Model.all
      @model_names = @model.map(&:name).join(', ')
    end
  end
end

Как мне это сделать, чтобы я не определял одно и то же действие в нескольких контроллерах? (Что не очень DRY )Будет ли это в контроллере приложения _? И если не сложно, как я могу сделать так, чтобы они тоже разделяли точку зрения?

ОБНОВЛЕНИЕ

Было бы предпочтительно, если бы это могло быть вне отдельных контроллеров. Если я смогу заставить это работать правильно, мне бы даже не пришлось генерировать отдельные контроллеры.

6
задан Kyle Macey 11 March 2012 в 04:55
поделиться