2013-11-18 4 views
0

У меня есть некоторые (ну, на самом деле, много) встроенные шаблоны, которые выглядят одинаково, что я бы предпочел не жестко кодировать. Можно ли каким-то образом внедрить их динамически?Можно ли динамически вставлять шаблоны в Sinatra

Например, вместо:

__END__ 

@@view1 
==slim :defaultview 

@@view2 
==slim :defaultview 

... 

Я хотел бы сделать что-то вроде ...

%w[view1 view2].map{|v| templates[v] = "==slim :defaultview"} #templates would be Sinatra's internal template cache 
+0

Возможно, я полностью неверно истолковал ваш вопрос, но если у вас есть похожий код, это звучит так, как будто частицы - это то, что вы хотите: http://www.sinatrarb.com/faq.html#partials – CDub

+0

@CDub Я боюсь ты. @@ defaultview (не показано в моем примере кода выше) является моим частичным, что я хотел бы использовать только в нескольких других представлениях, вместо того, чтобы вводить их все в разделе данных, которые я хотел бы итерировать массив, и установить значение этого шаблона в коде. Имеет ли это смысл? – rebnoob

+0

Ahhh ... Понял. – CDub

ответ

0

Использование named templates:

%w[view1 view2].map(&:to_sym) 
       .each do |v| 
    template v do 
    "==slim :defaultview" 
    end 
end 

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

Смежные вопросы