Подтвердить что ты не робот

Подкаталоги Sinatra

Я хочу иметь возможность получать представления Sinatra из подкаталогов. /views (например./views/admin). Я знаю, что вы можете установить такие же представления:

set :views, Proc.new { File.join(root, "templates") }

Но как я могу установить это только для части файла?

4b9b3361

Ответ 1

Я не уверен точно, что вы просите, но вы можете отобразить представление в views/admin, выполнив следующее:

erb :"admin/report"

Если вы спрашиваете, как автоматически искать в подкаталогах views при вызове erb :report, я не уверен, как это сделать, и я не думаю, что вы захотите (что произойдет, если два вида в разных каталогах имеют одно и то же имя?).

Ответ 2

Это должен быть негабаритный комментарий. Ответ, предоставленный Алексом, является правильным, но, конечно, это цитата из официальной документации:

Важно помнить, что вы всегда должны ссылаться на шаблоны с символами, даже если они находятся в подкаталоге (в этом случае используйте :'subdir/template' или 'subdir/template'.to_sym). Вы должны использовать символ, потому что иначе методы рендеринга будут визуализировать любые строки, переданные им напрямую.