演習課題「RPGの行動選択メニューで、勇者と表示する」
右の環境には、SinatraでRPGの行動選択メニューが作成してありますが、名前が表示されません。player_menu.rbを修正して、前処理で名前として「勇者」と表示するように修正してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、サーバーを起動し、問題文に関するページにアクセスできる状態にしてください。
#04:Sinatraで前処理を行おう
ここでは、Sinatraのフォームを使う場合のデータの共有について学習したいと思います。そのために、beforeメソッドを使って、メソッド間でデータと処理を共有してみましょう。
get '/' do
# GETメソッドの処理
erb :form
end
post '/' do
# POSTメソッドの処理
erb :form
end
# Sinatraで前処理を行う
require 'sinatra'
require 'sinatra/reloader'
before do
@player = "勇者"
end
get '/' do
@player = "勇者"
erb :form
end
post '/' do
@message = "#{@player}は荒野を歩いていた"
@article = params[:article]
@name = params[:name]
erb :form
end
<h1><%= @player %>のフォーム</h1>
<form action="/" method="post">
<label for="article">投稿</label>
<input type="text" name="article">
<p></p>
<label for="name">名前</label>
<input type="text" name="name">
<button type="submit">送信する</button>
</form>
<p><%= @article %> <%= @name %></p>
<p><%= @message %></p>
- [GETメソッドとPOSTメソッドの違い | 酒と涙とRubyとRailsと]
http://morizyun.github.io/blog/get-post-method-compare-parameter/index.html
- [HTML/CSS入門編3: HTML要素を学ぼう | paizaラーニング]
https://paiza.jp/works/html/primer/beginner-html3
- [基本的なフォーム -- ごく簡単なHTMLの説明]
http://www.kanzaki.com/docs/html/htminfo31.html
- [初めての HTML フォーム - ウェブ開発を学ぶ | MDN]
https://developer.mozilla.org/ja/docs/Learn/HTML/Forms/Your_first_HTML_form
- [Code of Resistance!!: SinatraでWebリクエストを取得してみる。]
https://daruiapprentice.blogspot.jp/2015/05/sinatra_15.html
- [Code of Resistance!!: Sinatraで入力フォームのデータを取得する。]
https://daruiapprentice.blogspot.jp/2015/05/sinatra_18.html