Другой способ сделать это - просто добавить «макеты» где-нибудь в пути к макету . Это кажется смешным, но Rails добавит префикс «layouts /» только в том случае, если его еще нет в пути.
# rails/lib/abstract_controller/layouts.rb:268
# out of context, but here in all it's glory
_prefix = "layouts" unless _implied_layout_name =~ /\blayouts/
Просто чтобы убедиться, что я здесь ясен, вот пример:
# your layout at app/themes/foobar/layouts/foobar.html.erb
layout Rails.root.join('app/themes/foobar/layouts/foobar').to_s
#=> renders /path/to/your/app/themes/foobar/layouts/foobar.html.erb