Esto es solo por herencia más adelante si tiene controladores que heredan de ApplicationController. ¡Buena suerte! Si usa un archivo config.ru para su aplicación, esto puede ayudar.
require 'active_support'
require 'sinatra/base'
APP_ROOT = Pathname.new(File.expand_path('../', __FILE__))
# We have to do this in case we have controllers that inherit from each other.
Dir[APP_ROOT.join('app', 'controllers', '*.rb')].each do |controller_file|
filename = File.basename(controller_file).gsub('.rb', '')
autoload ActiveSupport::Inflector.camelize(filename), controller_file
end
Esto supone poner ese código en su config.ru pero se puede poner en su expediente de solicitud también y asegúrese de ajustar la estructura de directorios.
¿Por qué tengo que usar '@ data' y no' data'? – Radek
@Radek Debido a que las variables de instancia están disponibles para la plantilla de Haml por Sinatra 'haml' helper, pero las variables locales no lo son. – Phrogz