演習課題「erbで、配列データを表示しよう」
右の環境には、SinatraでWebページを表示するプログラムが作成されており、enemies配列で、敵の名前が定義してあります。このファイルを修正して、pタグで、以下のメッセージを表示するように修正してください。
勇者は、スライムと戦った。
勇者は、モンスターと戦った。
勇者は、ドラゴンと戦った。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、サーバーを起動し、問題文に関するページにアクセスできる状態にしてください。
#05:erbの書き方を理解しよう
ここでは、Sinatraで、erbの書き方をいろいろと試します。
そのために、先ほどのチャプターに続いて、Sinatraのインラインテンプレートを使います。
# erbの色々な使い方を試す
require 'sinatra'
require 'sinatra/reloader'
require 'erb'
get '/' do
@name = "Sinatra"
@now = Time.now
@player = ["勇者", "戦士", "魔法使い"]
erb :index
end
__END__
@@index
<!DOCTYPE html>
<html lang="ja">
<head>
<mata charset="utf-8">
<title>Sinatra - paiza</title>
<style>body {padding: 30px;}</style>
</head>
<body>
<h1>戦闘シーン</h1>
<p>Hello <%= @name %></p>
<p>Hello <%= @now %></p>
<% @player.each do |person| %>
<p><%= "#{person}は、モンスターと戦った。" %></p>
<% end %>
</body>
</html>
erbでは、HTMLの中にRubyのコードを記述するため、専用タグを使用する。
- <%= ・・・ %>:パーセントの後ろにイコールがあると、その部分の値をHTMLの一部として出力する。
- <% ・・・ %>:パーセントだけのタグは、出力なしでRubyコードを実行する。
- [Sinatraでerbを使う - Qiita]
https://qiita.com/ms2sato/items/eed1e3c929ac8f6195a9
- [erb記法メモ - Lazy Technology]
http://d.hatena.ne.jp/trench/20070503/1178191195
- [テンプレートエンジン - Wikipedia]
https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3
- [Rubyist Magazine - テンプレートシステム入門 (1) 歴史編]
http://magazine.rubyist.net/?0024-TemplateSystem