#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]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS