はじめに
Rails触ることになりそうなので、Railsチュートリアルをやりつつ基本を学ぶ。
開発環境
- docker
- VsCode
内容
環境構築
-
dockerで環境構築する
-
前提
- dockerインストール済み
- VsCodeインストール済み
- 拡張機能インストール済み
-
下記手順ですすめる
-
ローカル環境にもってくる
git clone https://github.com/<GitHubアカウント名>/<設定したリポジトリ名>.git
- 開発コンテナを開く
- 下記のようになっていれば、起動している状態
- バージョンも表示されている
チュートリアルすすめる
Railsガイドにそってブログのアプリケーションを作成する
rails new blog
cd blog
- Webサーバーを起動する
bin/rails server
config/routes.rb
Rails.application.routes.draw do
get "/articles", to: "c
#index"
end
- コントローラーを作成
bin/rails generate controller Articles index --skip-routes
app/controllers/articles_controller.rb
class ArticlesController < ApplicationController
def index
end
end
app/views/articles/index.html.erb
<h1>Hello, Rails!</h1>
- アプリケーションのrootパスをこのコントローラとアクションに対応する
config/routes.rb
Rails.application.routes.draw do
root "articles#index"
get "/articles", to: "articles#index"
end
- Hello, Rails!が表示されるようになった
-
Railsアプリケーションは、アプリケーションコードを読み込むのにrequireを書く必要がない。下記の2つの場合は書く必要があり
-
lib/ディレクトリの下にあるファイルを読み込む場合
-
Gemfileでrequire: falseが指定されているgem依存を読み込む場合
MVCを理解する
- モデルを作成する。モデル名は常に英語の「単数形」で表記すること
bin/rails generate model Article title:string body:text
- マイグレーションを実行する
db/migrate/20240512220115_create_articles.rb
class CreateArticles < ActiveRecord::Migration[7.1]
def change
create_table :articles do |t|
t.string :title
t.text :body
t.timestamps
end
end
end
- 以下のコマンドをたたいて、マイグレーション実行できていればOK
bin/rails db:migrate
- モデルを用いてデータベースとやりとりする
- Railsのコンソール機能を使用してみる。コンソールを起動する
bin/rails console
- irbプロンプトが表示され、先ほど作成したArticleオブジェクトを以下のように初期化してみる(単に初期化されただけの状態であり、まだデータベースに保存されていない状態)
- オブジェクトをデータベースに保存するには、saveメソッドを使用する
- 先ほどsaveした内容が、保存されている
- 記事のリストを表示する
app/controllers/articles_controller.rb
class ArticlesController < ApplicationController
def index
@articles = Article.all
end
end
app/views/articles/index.html.erb
<h1>Articles</h1>
<ul>
<% @articles.each do |article| %>
<li>
<%= article.title %>
</li>
<% end %>
</ul>
- 一覧で表示されている
まとめ
Railsさわる機会がなくなったので、一旦ここまでで止め。久しぶりに違う言語をさわると全くわからないってなるけど、いい勉強になった。