from Qiita:
使用環境
- 仮想環境 OS: Ubuntu 18.04
- Ruby:2.51
rails db:migrate
- Railsドキュメントより
- rails db:migrate を実行
- schema_migrations テーブルを調べ、存在しなければ作成
- db/migrate ディレクトリ内のすべてのマイグレーションファイルを調べる
- データベースの現在のバージョンと異なるバージョンがあった場合、データベースに適応
- schema_migrations テーブルの更新
3日目
scaffold
を利用せずに App 作成をし、Scaffold の有難みを知る。
前準備
- rails s new qiita_routes -d MySQL
- Gemfile の miniracer コメントインして、bundle install
- Config/database.yml の password 情報編集
- rails db:create
前提:知識
ページ作成に必要なもの
- view
- 今日はしなかったので、今投稿には未記載
- view の中身がブラウザに表示される内容
- controller
- ページ表示の際、controller を経由して、view をブラウザに返す
- controller で設定した action は、controller と同じ名前の view フォルダの中から、action と同じ名前の html ファイルを探してブラウザに返す
- routing
ページ表示の流れ
Routing => Controller => Model => View
model はデータベース情報が必要なときだけ使用。
本段階
controllerを作成
routingの設定:ブラウザとコントローラをつなぐ
controller:modelとviewをつなぐ
無事に、ブラウザ上で Hello が表示された。
renderメソッド
上 controller 編集時に用いた、render メソッドは実際に画面に表示される内容を生成する。今回の render の plain オプションを指定すると、文字列を直接表示できる。
Rails の controller で render を省略すると、代わりに app/views/コントローラ名/アクション名.html.erb を用いる。
=> controller 作成コマンドは rails g controller コントローラ名 アクション名
参照: Ruby on Rails でページを作成する仕組み by @np_misaki氏
- Config : アプリケーションの設定情報を格納する
- /routes.rb : ルーティングを設定する
- /locales : 辞書ファイル(グローバル対応等)
- /app : アプリケーション開発中にメインで使用するディレクトリ
- /controllers..Controller クラスを格納する
- /models : Model クラスを格納する
- /views :View クラスを格納する
4日目
モデルを作成
- model とは
- データベースを操作する
- app/models 下に配置される
- テーブルごとに用意され、データの登録・取得・更新・削除などを行なう
model作成コマンド
DBの操作
テーブルの作成をする
できたテーブルをMySQL側で確認してみる
rails g models
で設定したカラム名が作成されているのがわかる。
データベースにfooさんのレコードを追加してみる
MySQLの中から、追加されているレコードを確認してみる
rails console から新たにレコードを追加する
Rails Console上でレコード取得
controller
view
ルーティングを変更
rails routes
実行
次に上にある、「users GET /users(.:format) users#index」を実装
UserController の中に show アクションを作成
この時点で rails s
で立ち上げると
showアクション
- users_path は users#index へのリンク
- new_user_path は users#new へのリンク
- edit_user_path は users#edit へのリンク
- user_path は users#show へのリンク
show, edit アクションの定義
追加:2日目を参考にし、表示を触ってみる
性別の値 0 or 1 を男性 or 女性で表示させる。
男性、女性で表示されるようになった。だが、edit ページは、テキスト入力のまま
ラジオボタンに変更
同様に、年齢、住所、参加不参加もラジオボタンにしておく。
年齢のラジオボタンを追加
8日目
users_controller
indexページからのdestroyへのリンク作成
newページ編集
indexからnewへのリンク作成
createアクション定義
リファクタリング
wikipedia
リファクタリング (refactoring) とは、コンピュータプログラミングにおいて、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理すること
createアクションとupdateアクションの共通化
2 アクションに下の共通箇所がある
リファクタリング後
show. edit. updata, destroyの共通化
アクションのリファクタリング後(全体)