Это может быть возможно, только если вы обработаете исходный файл кофе чем-то вроде erb. Так что, если вы используете конвейер ресурсов rails, вы можете просто добавить .erb к расширению файла, и файл будет обработан с помощью erb перед отправкой его в кофе. Я думаю, что в sinatra вам придется завернуть что-то подобное самостоятельно.
Идея будет близка к этому - http://www.sinatrarb.com/intro#Textile%20Templates
P.S: доступ к переменным из разных уровней приложения в любом случае плохая идея.
EDIT
У вас есть многоэтапный процесс компиляции шаблона в RAILS, управляемый драгоценным камнем, называемым звездочками. Вы начинаете с файла, например, называемого /app/views/foo/show.js.coffee.erb
class <%= @magic %>
doSomthing: ->
console.log "hello"
В вашем контроллере вы добавляете переменную экземпляра
@magic = "Crazy"
Rails сначала обрабатывает файл erb и генерирует
class Crazy
doSomething: ->
console.log "hello"
Во-вторых, он обрабатывает файл coffeescript для генерации
var Crazy;
Crazy = (function() {
function Crazy() {}
Crazy.prototype.doSomething = function() {
return console.log("hello");
};
return Crazy;
})();
Именно поэтому он называется конвейером активов . Более условно это можно назвать
конвейер компиляции. Если вы знаете, что делаете, вы можете запустить звездочки с помощью Sinatra. Однако ваша жизнь была бы проще, если бы вы использовали Rails 3.1 из
начало.