Railsでスケルトンを。

昨日、リクエストを受けて、DBを参照して、結果を画面に出すところまでを作ってみたので、メモ。
ちなみに環境は、Windows10 + vegrant + vertualBoxでCentOS6.5上でrails5.1.5を動かしてます。

MVCモデル

RailsMVCモデルを採用してるようです。
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 %>