Этот поток помог мне написать действительно помощника по частичной частичной части, которая дает вам функцию Rails-like partials. Я очень доволен этим!
#partials_helper.rb
module PartialsHelper
def partial(name, path: '/partials', locals: {})
Slim::Template.new("#{settings.views}#{path}/#{name}.slim").render(self, locals)
end
end
-
#app.rb
require 'slim'
require 'slim/include'
require 'partials_helper'
require 'other_helper_methods'
class App < Sinatra::Base
helpers do
include PartialsHelper
include OtherHelperMethods
end
get '/' do
slim :home
end
end
-
#views/home.slim
== partial :_hello_world, locals: { name: 'Andrew' }
-
#views/partials/_hello_world.slim
h1 Hello, World! Hello #{name}!
я первоначально имел только .render({}, locals)
, что означало, что обертоны не имеет доступа к помощника методы, содержащиеся внутри OtherHelperMethods
(но home.slim
сделал). Переходя self
в .render
, в качестве первого аргумента, устанавливает, что (если вы хотите знать, что посмотреть документацию Tilt::Template #render
.
С этим PartialsHelper, проходя местных жителей не является обязательным, как указать другой путь к частичной (относительно settings.views
).
Надеюсь, вы получите как можно больше пользы от этого, чем я!
Не могли бы вы рассказать об этом ответе? Я пытаюсь сделать то же самое. Скажем, имя файла - index.slim, и я хочу включить в него частичный _variables.slim. Благодаря! – harrypujols
Просто введите свой тонкий файл 'Slim :: Template.new ('_ variables.slim', optional_option_hash) .render (scope)' не так много, что я могу сказать об этом, «частичная» вещь есть только доступный в Rails, а не только в Slim. Если вы используете Rails, вам просто нужны «render» variables'' –
Спасибо. Жаль, что он работает только в Rails. Я использовал Codekit для компиляции шаблонов Slim в статический html, но без этой возможности это бесполезно. Я буду использовать Джейд. – harrypujols