Я бы хотел, чтобы мое приложение Sinatra включало в макет таблицу с конкретными видами.
Рассмотрим это простое приложение:
app_folder_root/
| my_app/
| my_app.rb
| public/
| css/
| index.css
| layout.css
| views/
| index.haml
| layout.haml
config.ru
config.ru:
require 'rubygems'
require './my_app/my_app'
map '/' do
run MyApp
end
app.rb:
require 'sinatra/base'
class MyApp < Sinatra::Base
get '/' do
haml :index
end
end
Я попытался установить переменную в my_app.rb
, которая задает имя представления, и попытался сослаться на него в layout.haml
, но это не сработало (возможно, яЯ бы не стал воспринимать это как окончательное решение проблемы, так как я чувствовал, что это запах кода, но просто пробовал другие возможности).
Это использует Haml, но я надеюсь, что это не имеет значения -думая, что это должно быть одинаково для erb и т. д.
В layout.haml
я хотел бы сослаться на представление, которое будет отображаться, и включить таблицу стилей, специфичную для представления, в соответствии с соглашением об именовании.Например, если index.haml
будет отображаться, я бы хотел включить css/index.css
.Каков наилучший способ сделать это?