TECH EXPERT 15日目
紙は嵩張るので。ブログ中心にメモしていこうかと思います。
気付き
自分が今してる作業、作業場所(モデルやらコントロラーやら)
の把握を意識して開発を進めることで
言語化しやすくなる。
部分テンプレート
コードの記述で繰り返してる部分を1つのファイルのまとめる方法
ファイル名 _〇〇.html.erb
メリット 管理しやすい 修正が楽
Rubyの繰り返す処理のメソッド化と考えは同じ
ファイル作成後↓
render メソッドで呼び出し
renderメソッドのオプション
partian:ファイル名の指定 #どこに有るの 明確化
locals:部分テンプレート内での変数を定義 #この変数使ってね
アソシエーション
モデル同士の関連付け
複数のモデルから情報が必要な場合、下記のメソッドをモデルに記述することで関連ずけ
例:コメント機能 コメントを誰かの投稿に呟く
コメントモデル ユーザーモデル ツイートモデルの 結びつきがいる
has_many メソッド モデル目線から考えて1対多の時に使う
belong_to メソッド モデル目線から考えて多対1の時使う
例 1人のユーザーは多くのツイートを所有する。
ユーザー目線は1対多 ツイート目線は 多対1
ネスト do下に子要素
入子構造 有る記述の中に別の記述を入れる
”あるツイートに対してのコメント”:ツイートの中にコメントが入ってるという親子関係
使わないとモデルとアソシエーションしている別モデルのid情報が返せない
ビジネスロジック
データに関する処理をするプログラム
どのようにデータを処理するのか
どのデータを取得するかなど
意識すべき点は テーブルとのやりとりに関するメソッドはモデルに記述するということ
search アクション doをメソッド後ろに記載
ルーティングの設定時
collection :idがつかない 検索窓フリー検索など
member :idがつく 特定のページを指定
where メソッド #データベースからどんなの探すの?
使い方: モデル.where('検索対象となるカラムを含む条件式’)
モデルに記載 ビジネスロジックに関わるから
アプリケーション開発の流れ(全体像)
企画→要件定義→設計→開発→保守、運用
設計{
1 基本設計
要件定義の内容を、開発に必要な内容へまとめること
画面 画面の変わり方など
↓
2 詳細設計
実際に書くべきコードを洗い出す作業
要件定義や基本設計の情報を元に、ユーザーが行う操作(ボタンを押す)に対して行われる処理を全て書き出す