Restful
アプリの設計方法の1つ
HTTPメソッドを使って、webリソースを操作する際の設計概念
Railsにおけるリソースとは、DBテーブルのデータのことを示す
GET : リソース取得
POST : リソース作成
PATCH/PUT : リソース更新
DELETE : リソース削除
https://scrapbox.io/files/61dec37e1ee71a001e2598bc.png
RESTに沿ってルーティングを設計する
code:routes.rb
Rails.application.routes.draw do
# root 'boards#index' これを、↓のように表す
get 'boards', to: 'boards#index
end
MVCの流れ
ルーティング
code:routes.rb
get 'boards/new', to: 'boards#new'
コントローラにnewメソッド作成
code:boards_controller.rb
class BoardsController < ApplicationController
def index
end
def new
end
end
ビュー作成
code:app/views/boards/new.html.erb
## viewの内容...
Modelオブジェクトを利用してフォームを作る
ヘルパーメソッドを使用する。
読みやすい形で、簡潔にHTMLを記述できるRailsのメソッド
code:controller.rb
def new
@board = Board.new
# インスタンス変数を定義。ここで定義したものは、対象のviewでも参照ができる
end
code:new.html.erb
<form>
<div class="form-group">
<label for="name">名前</label>
<input id="name" class="form-control">
</div>
<div class="form-group">
<label for="title">タイトル</label>
<input id="title" class="form-control">
</div>
<div class="form-group">
<label for="body">本文</label>
<textarea id="body" class="form-control" rows="10"></textarea>
</div>
<button type="submit" class="btn btn-primary">保存</button>
</form>
上の記述を、ヘルパメソッドを使った形に修正する。下と上は形は同じ
code:new.html.erb
# <% %>で囲った中にはrubyコードが書ける
# <%=のように、=をつけた場合はコードの結果をビュー内に埋め込める
<%= form_for @board do |f| %>
<div class="form-group">
<%= f.label :name, '名前' %>
<%= f.text_field :name, class: 'form-control' %>
</div>
<div class="form-group">
<%= f.label :title, 'タイトル' %>
<%= f.text_field :title, class: 'form-control' %>
</div>
<div class="form-group">
<%= f.label :body, '本文' %>
<%= f.text_area :body, class: 'form-control', rows: 10 %>
</div>
<%= f.submit '保存', class: 'btn btn-primary' %>
<% end %>