演習課題「プレイヤーは荒野を歩いていた」
右の環境には、SinatraでRPGのプレイヤーの一覧を表示するプログラムが作成してありますが、名前が表示されません。プレイヤーの名前は、players.txtを読み込んで、改行で分割して配列に格納する必要があります。
player.rbを修正して、名前を表示するようにしてください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、サーバーを起動し、問題文に関するページにアクセスできる状態にしてください。
#06:具体例:1行掲示板を作ろう - 投稿したデータを表示する
ここでは、Sinatraを使ったWebアプリケーションの例として、簡単な1行掲示板を作成します。
まずは、投稿内容を記録したファイルから、データを表示してみましょう。
このテキストデータをarticles.txtとして保存する。最後の改行を忘れずに。Hello World,paiza
Hello Ruby,paiza
Hello Sinatra,paiza
世界の皆さんコンニチハ,霧島
にゃー,ネコ
読み込んだテキストは、@articles変数に配列として読み込まれる。File.open("articles.txt", "r") do |f|
@articles = f.read.split("\n")
end
# 1行掲示板 - 投稿したデータを表示する
require 'sinatra'
require 'sinatra/reloader'
require 'erb'
get '/' do
File.open("articles.txt", "r") do |f|
@articles = f.read.split("\n")
end
erb :bbs
end
post '/' do
@article = params[:article]
@name = params[:name]
erb :bbs
end
<h1>1行掲示板</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>
<h2>投稿一覧</h2>
<table>
<tr><th>投稿</th><th>名前</th></tr>
<% @articles.each do |line| %>
<tr>
<% column =line.split(",") %>
<% column.each do |item| %>
<td><%= item %></td>
<% end %>
</tr>
<% end %>
</table>
- [Rubyでファイルの書き込み・読み込みを行う方法 | UX MILK]
http://uxmilk.jp/22615