FizzBuzz問題
教材として「FizzBuzz問題」を取り扱います。RailsアプリケーションでFizzBuzzを実装する場合、コントローラーとビューを作成してWebブラウザで結果を確認できる形にするのが一般的です。
以下は、RailsのFizzBuzzController
を作成し、index
アクションでFizzBuzzの結果を表示する
実装例です。具体的にはOpenAI社のChatGPTを使い
「なるほど。実際の作業としては 作業ディレクトリー内に「fizz_buzz」フォルダーを作成して VisualSudioCodeで開くイメージですか?」
といった質問をしていくと、AIが「そのイメージですね!」と答えてくれて
会話が進み理解が深まっていきます。
AIを使ったコーディング
ここでまず、全体系の構成を作成します。ターミナルやコマンドプロンプトで、Rails プロジェクトを作成するディレクトリに移動し、以下のコマンドを実行します。
mkdir fizz_buzz # フォルダを作成 cd fizz_buzz # フォルダに移動 rails new . --skip-bundle --database=sqlite3
rails new .
→ 現在のディレクトリ(fizz_buzz
)に Rails プロジェクトを作成--skip-bundle
→bundle install
をスキップ(後で実行する)--database=sqlite3
→ SQLite3 を使用(デフォルト)
コマンドを実行して VS Code
を開きます。そしてRails のコントローラーを作成します。
code . rails generate controller fizz_buzz index
app/controllers/fizz_buzz_controller.rb
が作成されるapp/views/fizz_buzz/index.html.erb
も自動生成される
その後、各ファイルを以下に従い修正していきます。
1. コントローラーの作成
app/controllers/fizz_buzz_controller.rb
に以下のコードを追加します。
class FizzBuzzController < ApplicationController def index @results = fizz_buzz(1..100) # 1から100までのFizzBuzzを計算 end private def fizz_buzz(range) range.map do |n| if n % 15 == 0 "FizzBuzz" elsif n % 3 == 0 "Fizz" elsif n % 5 == 0 "Buzz" else n.to_s end end end end
ここ
3. ビューの作成
app/views/fizz_buzz/index.html.erb
に以下のコードを記述します。
<h1>FizzBuzz結果</h1> <ul> <% @results.each do |result| %> <li><%= result %></li> <% end %> </ul>
実行結果の検証
4. サーバーを起動して動作確認
以下のコマンドを実行し、Railsサーバーを起動します。
rails server
やはりRubyは簡便ですね
ブラウザで http://localhost:3000/fizz_buzz
にアクセスすると、
FizzBuzzの結果がリスト表示されます。
この方法なら、Railsアプリ内でFizzBuzzを簡単に表示できます!
〆最後に〆
以上、間違い・ご意見は
次のアドレスまでお願いします。
最近は全て返信出来てませんが
適時、返信して改定をします。
nowkouji226@gmail.com
【全体の纏め記事へ】
コメント