#author("2025-05-21T06:51:15+00:00","default:admin","admin") #author("2025-05-21T09:01:02+00:00","default:admin","admin") * Ruby on Rails 超入門 [#ba2251ac] ** Ruby on Rails とは? [#zf227bb9] https://rubyonrails.org/ データを取り扱うアプリケーションに必要な "CRUD" の機能など、ウェブアプリケーションに必要な機能を容易に実装可能なウェブアプリケーション開発フレームワーク。 CRUDは以下の略。 - C: Create (作成) - R: Read (読み取り) - U: Update (更新) - D: Delete (削除) ** Ruby on Rails のインストール(Windows向け) [#uc842f7f] (https://prog-8.com/docs/rails-env-win を参考にインストールするが、バージョンなどは若干異なる。) *** Rubyのインストール [#acba4ea8] https://rubyinstaller.org/ から「Ruby+Devkit 3.3.8-1 (x64) 」をインストール済の想定とする。 *** SQLiteのインストール [#g62eb9d8] SQLiteとは、リレーショナルデータベース管理システムという種類のソフトウェアである。 + https://sqlite.org/ にて「Download」を押して、ページ中ほどの「Precompiled Binaries for Windows」から「sqlite-dll-win-x64-******.zip」をダウンロードする。(このページからは以下で別ファイルをダウンロードするのでウインドウは閉じないで置いておく) + ダウンロードしたzipファイルを開く(ダブルクリックする) + 別のエクスプローラのウインドウを開いて、「C:¥Ruby33-x64¥bin」を表示する。 + zipファイル内の「sqlite3.dll」と「sqlite3.def」の2ファイルを「C:¥Ruby33-x64¥bin」にコピーする。右クリックしてコピー・ペーストでもよいし、ファイルをドラッグ&ドロップしてもよい。 + https://sqlite.org/ のDownloadページ中ほどの「Precompiled Binaries for Windows」から「sqlite-tools-win-x64-*******.zip」をダウンロードする。 + ダウンロードしたzipファイルを開く(ダブルクリックする) + zipファイル内の「sqlite3.exe」を含む3ファイルを「C:¥Ruby33-x64¥bin」にコピーする。 *** Railsのインストール [#xadac98e] + スタートメニューの「Ruby 3.3.8-1-x64」から「Start Command Prompt with Ruby」を実行する。 + 「gem install rails -v 8.0.2」と入力してEnterキーを押す。(以下、単に「入力する」とだけ表記した場合は、Enterキーを押すところまで含むことにする。) 若干時間はかかるが、これでRailsがインストールされた。 *** パソコン側の作業用フォルダ作成 [#nf680e79] + 未作成の場合は、別途、エクスプローラーを開き、Cドライブをダブルクリックして内容表示させた画面で、「新規作成」→「フォルダー」で「bioinfo2025」というフォルダを作成する。(フォルダ名は異なっていても構わないが、半角英数字のみでスペース等を含まないの名前にする。異なるフォルダ名で作成した場合は、以下の当該部分はすべて読み替えること。) *** サンプルアプリの作成 [#g00e82e4] + (上記の続きなら同じウインドウで続行可能だが、そうでない場合は、スタートメニューの「Ruby 3.3.8-1-x64」から「Start Command Prompt with Ruby」を実行。) + 「c:」とだけ入力、そして、「cd \bioinfo2025」と入力して、作業フォルダに移動する。(&color(red){※ 「cd \bioinfo2025」の『cd半角スペース』の後ろの『\』(バックスラッシュ)は、フォントの違いにより、日本語環境では『¥』として見えることが多い。};コピー&ペーストすると、このページ上では『\』なのに、「Start Command Prompt with Ruby」にペーストした時点で『¥』になっているのがわかる。) + 「rails new sample_app -G」と入力する。(注:かなり時間がかかる) *** サンプルアプリの実行 [#kd7a5ad5] + (上記の続きなら同じウインドウで続行する。そうでない場合は、スタートメニューの「Ruby 3.3.8-1-x64」から「Start Command Prompt with Ruby」を実行後、「c:」「cd \bioinfo2025」を順に入力するなどして、当該フォルダに移動する。) + 「cd sample_app」と入力してそのフォルダに移動する。 + 「rails s」と入力してRailsサーバーを立ち上げる。 + ウェブブラウザを開いて「http://127.0.0.1:3000」と入力する。 + Railsのアイコンの画面(https://prog-8.com/docs/rails-env-win 参照)が出たら成功 + 終了時は、「Start Command Prompt with Ruby」内でCtrl+Cを押す(以下に続く場合は、まだ押さないでください) *** サンプルアプリを改変して書籍管理アプリを作成してみる [#d8595eb8] + スタートメニューの「Ruby 3.3.8-1-x64」から「Start Command Prompt with Ruby」を実行して、上記とは別に、もう1個、ウインドウを開く。 + 「c:」「cd \bioinfo2025」「cd sample_app」を順に入力して、フォルダに移動する。 + 書籍管理アプリを作成してみる。(参考ページ: https://www.tohoho-web.com/ex/rails.html#books_application の「ブック管理アプリを作成する」) + 「rails generate scaffold book title:string author:string」と入力。入力後エラーが出ていないことを確認。(メッセージは表示される。) + (参考:ここで以下の「rails db:migrate」を実行する前に http://127.0.0.1:3000/books にアクセスすると、「ActiveRecord::PendingMigrationError」が出る。これはデータベースの準備ができていない意味のエラー。「rails db:migrate」がデータベース準備を実行するコマンド。) + 「rails db:migrate」と入力。 + http://127.0.0.1:3000/books にアクセスすると、本の入力ページが表示される。 + たとえばTitleに「吾輩は猫である」、Authorに「夏目漱石」などと入力して「Create Book」ボタンを押すと、その書誌データが作成される。「Back to Books」のリンクをたどるか、http://127.0.0.1:3000/books に再度アクセスすると、一覧表示される。 + 別の新規データを入力して、一覧表示画面にデータが増えることを確認する。 + 一覧表示画面から個別のデータを選んで、編集や削除を試す。 *** 書籍管理アプリを拡張する [#ka3c9156] たとえば、本の感想を入力するコメント欄を追加したい。 + 「rails generate migration AddCommentToBooks comment:text」と入力して、commentというテキスト入力欄を追加する。 + 「rails db:migrate」と入力してデータベース定義を更新する。 + しかし、https://127.0.0.1:3000/books にアクセスしても、commentの表示はされないしcreateやeditの入力欄にもcommentは出てこない。 + しかし、http://127.0.0.1:3000/books にアクセスしても、commentの表示はされないしcreateやeditの入力欄にもcommentは出てこない。 + 「rails generate scaffold_controller book title:string author:string comment:text --skip-collision-check」と入力してcontrollerとviewを再作成する。入力後、上書きする必要のあるファイルが出る都度、上書きしていいか聞いてくるので、Yと入力する。あるいは、aと入力すると以後全部Yと同等になるはず。 + 参考:以下のように手動でviewやcontrollerを変更してもよい。 https://chatgpt.com/share/682d70e6-6420-800b-92f4-a7259bf90b72 + 参考:scaffoldを一切カスタマイズしていない場合や、データを消してもいい場合は、全部消してから最初からやり直したほうが早い。 *** 発展に向けて [#p14136eb] これは短時間で作成したサンプルのため、実用上は以下の点が問題となります。 - 誰でも書き換えが可能な状態である - ページデザインがシンプルすぎる それらを実現する方法はRuby on Railsやプラグインなどに含まれています。興味ある人は以下を参照してください。 *** 参考文献 [#z6ec9a79] -[[Ruby on Rails チュートリアル:https://railstutorial.jp/]] -- 初心者向けチュートリアル(有償・ただし最初の方は無償で閲覧可能) -[[Ruby on Rails ガイド:https://railsguides.jp/]] -- リファレンスマニュアル(閲覧は無償・検索機能は有償) -[[とほほのRuby on Rails入門:https://www.tohoho-web.com/ex/rails.html]] -[[慶應義塾大学 服部 隆志 氏の「スクリプト言語プログラミング基礎」(2023年度):http://web.sfc.keio.ac.jp/~hattori/script-lang/index.html]]