概要
Ruby
初心者の僕がRuby on Rails
までやってみた!
初期セットアップ的な
rails new <APP_NAME>
cd <APP_NAME>
bundle install
bundle update
bundle install
をする場所は1つ下の階層でやらなきゃいけない!
エラーが出た際の対処法は、下に掲載しています。
サーバーの起動
ubuntu@ubuntuv:~/デスクトップ/projectX/sample$ rails s
ブラウザの127.0.0.1:3000
に行って、これが出ればおっけ。
コンソールでCtrl + c
を押して、サーバーを終了する
モデルの生成
モデルを作ろうと思う
なおRuby on Railsの規約として、「モデル名の先頭は大文字、複数形は禁止」というものがありますので、覚えておきましょう。
https://www.sejuku.net/blog/96900
(僕みたいな初心者は命名規則知らずに、変なの使って恥かきそう...///)
ubuntu@ubuntuv:~/デスクトップ/projectX/sample$ rails generate model Product title:string price:integer
データーベースに反映させるためにコマンドを実行
ubuntu@ubuntuv:~/デスクトップ/projectX/sample$ rails db:migrate
サンプルアプリに入れるためのデータを用意する
初期データーを入れるためには、db/seeds.rb
に書き込むといい
products = [
{ title: 'りんご', price: 100},
{ title: 'すいか', price: 1000},
{ title: 'ぱそこん', price: 300}
]
ActiveRecord::Base.transaction do
products.each do |product|
Product.create!(product)
end
end
データーベースにサンプルデーターを入れるには以下のコマンドを実行する。
ubuntu@ubuntuv:~/デスクトップ/projectX/sample$ rails db:seed
ちゃんと登録されたか確認したいときには、こんな感じにするといい
自分の環境ではsqlite3
なので、そいつで見ていく
ubuntu@ubuntuv:~/デスクトップ/projectX/sample$ sqlite3 db/development.sqlite3
SQLite version 3.33.0 2020-08-14 13:23:32
Enter ".help" for usage hints.
sqlite> select * from products;
1|りんご|100|2022-04-18 06:22:23.125149|2022-04-18 06:22:23.125149
2|すいか|1000|2022-04-18 06:22:23.126459|2022-04-18 06:22:23.126459
3|ぱそこん|300|2022-04-18 06:22:23.127236|2022-04-18 06:22:23.127236
sqlite>
ちゃんとはいってる!
コントローラーを作成する
コントローラーはブラウザとモデルやビューとの仲立ちをする役割です
Webブラウザ「サイトの情報ください!」
コントローラー「おいよっ!、ビューさん、こっちによこして!」
みたいなイメージ
これでProducts
というコントローラーが作られる。
ubuntu@ubuntuv:~/デスクトップ/projectX/sample$ rails generate controller Products
コントローラを編集して、アクションを追加!
class ProductsController < ApplicationController
def index
@products = Product.all
end
end
ビューの作成
ビューは表面上で、見える場所となる
HTML
のような形式で書けばおっけ!
<!DOCTYPE html>
<html>
<head>
<meta charsrt="utf-8">
<meta name="viewport" content="wodth=device-width">
<title>サンプルアプリケーションっ!</title>
</head>
<body>
<h1>商品一覧</h1>
<table border="1">
<thead>
<tr>
<th>商品名</th>
<th>金額</th>
</tr>
</thead>
<tbody>
<% @products.each do |product| %>
<tr>
<td><%= product.title %></td>
<td><%= product.price %></td>
</tr>
<% end %>
</tbody>
</table>
</body>
</html>
ルーティングを設定する
ここのアドレスにアクセスが来たら、このアプリを起動するという感じの部分
shell
でいうところのalias
みたいな感じかな(?)
Rails.application.routes.draw do
# Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html
# Defines the root path route ("/")
# root "articles#index"
Rails.application.routes.draw do
get 'products', to: 'products#index'
end
end
サーバーを起動してみよう!
ubuntu@ubuntuv:~/デスクトップ/projectX/sample$ rails s
ちゃんと表示できたらおっけ!
参考文献