2013-04-17 2 views
0

В моем Rails приложения, которое я уже быть_наст следующий код:Rails: Загрузка в массиве частичных

<% %w(number_of_students edit_class_name tech_help).each do |modal| %> 
    <%= render "common/modals/#{modal}" %> 
<% end %> 

Там будет несколько больше модальностей добавлены в app/views/common/modals и вместо того, чтобы явно листинге их в %w() я был желая пройти через каталог common/modals и просто визуализировать каждый файл.

ответ

1

Вот что я придумал:

def render_modals 
    files = Dir.glob("#{Rails.root}/app/views/common/modals/*").collect { |file| File.basename(file, ".html.erb").sub("_", "") }.flatten 

    files.collect do |modal| 
     render partial: "common/modals/#{modal}" 
    end.join.html_safe 
    end 
0

определяют простой метод в том, где больше подходит (возможно приложение помощник?), Как это:

def modals 
    %w(number_of_students edit_class_name tech_help) 
end 

, если вам нужно эти модальности в контроллер/модель тоже, может быть, вы должны определить этот метод в соответствующем классе? Например

class Modal 
    def self.types 
    %w(number_of_students edit_class_name tech_help) 
    end 
end 

Кроме того, если вы оказываете шаблоны часто, то также определить

def render_modals 
    modals.map do |modal| # Modals here should be the method that you just defined, example, Modal.types 
    render partial: "common/modals/#{modal}" 
    end.join 
end 
Смежные вопросы