как продублировать всю модель / контроллер / представление для другого типа активов - PullRequest
0 голосов
/ 20 декабря 2011

извините за вопрос новичка: у меня есть приложение, в котором есть проекты с различными типами ресурсов (документы, видео и т. Д.). Я бы хотел добавить еще один актив для аудио с идентичной функциональностью для видео. Есть ли способ, которым я могу легко продублировать модель / контроллер / вид / таблицу, изменив 'video (s)' на 'audio (s)'?

1 Ответ

0 голосов
/ 20 декабря 2011

Вы можете написать Module, используя ActiuveSupport::Convern, который содержит все методы, которые вам нужны в модели, тогда вы можете include Модуль в моделях, чтобы расширить модели методами, содержащимися в вашем Модуле. Как это:

module AwsomeModule
     include ActiveSupport::Concern
     module ClassMethods
          # awesome class methods here
     end
     module InstanceMethods
          # awesome instance methods here
     end
end

Тогда в Model просто включите ваш Модуль. Для представлений вы можете использовать Partials и дать им объект с помощью параметров object и as, например:

render 'layouts/awesome_partial', :object => @instance_var, :as => :data

Затем в Частичном вы не можете получить доступ к объекту, указанному с помощью переменной data.

...