Techioz Blog

Ruby と Sinatra を使用すると、「内部」または「インライン」方法で HAML を使用できますか?

概要

gem install Sinatra と gem install haml を実行しました

そして、私はこの.rbファイルを持っています

require 'sinatra'

get '/abc2' do
"<b>aaaaaaaaaaaaa</b>"
end

ここで、HTML のその行が HAML で必要だとします。外部ではなく

私にできることはわかっています

get '/abc' do
  haml :index  # /views/index.haml 
end

そして、index.haml には haml %b aaaaaaa の行が含まれる可能性があります

しかし、Ruby ファイル自体に %b aaaaaaa を含めてレンダリングする方法はありますか。ファイルを参照する必要はありません。 /views/index.haml を参照する必要はありませんか?

CSS と同様に、CSS を外部に持つことも、HTML ファイルの内部に持つこともできます。同様に、JavaScript では、JavaScript を外部からインポートすることも、HTML ファイルの内部に持つこともできます。 .rb ファイルに対して内部的に HAML を使用します。出来ますか?

HAML がデータを挿入するためのテンプレート言語であることはわかっていますが、HTML をより簡潔に記述するための短縮形でもあります。

解決策

小規模なアプリの場合は、スクリプトの最後にビューを追加して、外部ファイルをなくすことができます。

get '/abc' do
  haml :hello
end
__END__
@@ hello
%h1= "Hello there"