Подкаталоги Sinatra
Я хочу иметь возможность получать представления Sinatra из подкаталогов. /views (например./views/admin). Я знаю, что вы можете установить такие же представления:
set :views, Proc.new { File.join(root, "templates") }
Но как я могу установить это только для части файла?
Ответы
Ответ 1
Я не уверен точно, что вы просите, но вы можете отобразить представление в views/admin
, выполнив следующее:
erb :"admin/report"
Если вы спрашиваете, как автоматически искать в подкаталогах views
при вызове erb :report
, я не уверен, как это сделать, и я не думаю, что вы захотите (что произойдет, если два вида в разных каталогах имеют одно и то же имя?).
Ответ 2
Это должен быть негабаритный комментарий. Ответ, предоставленный Алексом, является правильным, но, конечно, это цитата из официальной документации:
Важно помнить, что вы всегда должны ссылаться на шаблоны с символами, даже если они находятся в подкаталоге (в этом случае используйте :'subdir/template'
или 'subdir/template'.to_sym
). Вы должны использовать символ, потому что иначе методы рендеринга будут визуализировать любые строки, переданные им напрямую.