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
【全体の纏め記事へ】
