演習課題「プレイヤーは荒野を歩いていた」
右の環境には、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