演習課題「メニューの項目を追加する」
右の環境には、Sinatraで「RPGの行動選択メニュー」を表示するプログラムが作成されています。このプログラムに、「/say_hello」というパスで「hello sinatra」と表示するように修正してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、サーバーを起動し、問題文に関するページにアクセスできる状態にしてください。
#06:具体例:RPGの行動選択メニューを作ろう
ここでは、Sinatraの具体例として、RPGの行動選択メニューを作ります。ルーティングとテンプレートエンジンを使って、RPGのプレーヤーが、歩いたり、戦ったりするメニューを作りましょう。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Sinatra - paiza</title>
<style>body {padding: 30px;}</style>
</head>
<body>
</body>
</html>
# RPGの行動選択メニューを作る
require 'sinatra'
require 'sinatra/reloader'
require 'erb'
# メニュー, /, メニューを表示
get '/' do
@player = '勇者'
erb :index
end
# あるく, /walk, 荒野を歩いていた。
get '/walk' do
@player = '勇者'
@message = "#{@player}は、荒野を歩いていた。"
erb :action
end
# たたかう, /attack, モンスターと戦った。
get '/attack' do
@player = '勇者'
@message = "#{@player}は、モンスターと戦った。"
erb :action
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><%= @player %>のメニュー</h1>
<p><a href="/walk">あるく</a></p>
<p><a href="/attack">たたかう</a></p>
<p><a href="/talk">はなす</a></p>
</body>
</html>
@@action
<!DOCTYPE html>
<html lang="ja">
<head>
<mata charset="utf-8">
<title>Sinatra - paiza</title>
<style>body {padding: 30px;}</style>
</head>
<body>
<h1><%= @player %>のアクション</h1>
<p><%= @message %></p>
<p><a href="/">メニューに戻る</a></p>
</body>
</html>
- [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