Railsでスケルトンを。
昨日、リクエストを受けて、DBを参照して、結果を画面に出すところまでを作ってみたので、メモ。
ちなみに環境は、Windows10 + vegrant + vertualBoxでCentOS6.5上でrails5.1.5を動かしてます。
MVCモデル
RailsはMVCモデルを採用してるようです。
MVCモデルについては、詳しくないけど、おおむね以下のイメージ。
- Model
そのアプリ固有の機能、ビジネスロジックを書くところ。
- View
表示を行うところ。
- Controller
ModelとViewを制御し、ユーザ操作を処理するところ。
アプリの作り方
基本は、以下の方法でできる。
qiita.com
Viewの部分はコメントにある通り、あらかじめ作ることが分かっているなら下記のようにしたほうがいいね。
$ rails g controller search helloworld
DB周り。
モデル周りは本当便利だなぁと感心。
rails-study.net
↓のコマンドでモデルを作成。名前と読みと電話番号を持ったテーブル。
rails g model member name:string yomi:string phone:string
上のコマンドをうつと、テーブル定義を書いたマイグレーションファイルができる。
これをrakeコマンドを打つと実際にテーブルができる。
なんて便利!
カラム追加とかは既存のマイグレーションファイルは使わずに、
新しくマイグレーションファイルを作って、rakeで反映。履歴管理も簡単!
rails g migration AddAddressToMembers address:string rake db:migrate
AddAddressToMembers ってクラスを追加し、string型のaddressを追加するって内容。
クラス名で挙動を決めるようです。AddressをMembersテーブルにAddする。
class AddAddressToMembers < ActiveRecord::Migration[5.1] def change add_column :members, :address, :string end end
ControllerとView
こっちは簡単に。
@membersにmemverテーブルの全行を設定。
class ActiontestController < ApplicationController def hello @members = Member.all end end
Viewからmembersをeachで表示。
<h1>Actiontest#hello</h1> <p>Find me in app/views/actiontest/hello.html.erb</p> <% @members.each do |member| %> <p><%= member.name %></p> <p><%= member.yomi %></p> <p><%= member.phone %></p> <% end %>