ProgateのRuby on Railsまとめ②

【Ruby on Rails Ⅱ】

📖データベース
→投稿データを保存しておく場所

🌟$rails g controller posts index
→投稿一覧ページを作成するために、postsコントローラを作成する。一覧ページなので、indexというアクション
📖変数に値を代入するRubyのコードは、
<%コード%>とすることで、HTMLファイルの中でも使える。(拡張子のerbは埋め込みRubyの意味)
📖変数の値を表示したい時は、
<%=変数%>とする

🌟
<%posts.each do |post| %>
  <%=post%>
<%end%>
→each文で投稿を順に表示
📖変数の定義はアクションで行うのが一般的。def index 内に記述すればビューページで
使用できる。
そのままではビューページで使えないので、アクションで定義するときは、@変数とする!

📖データベースはテーブルという表でデータ管理している。1行ずつのデータをレコード、縦の列をカラムという。

🌟$rails g model Post content:text
→postsテーブルを作成する。
テーブル名(後に出てくるモデル名)は最初大文字で単数形にする。カラム名はcontent、データ型はtext(長い文字列)
📖上のコマンド実行すると、db/migrateフォルダの下にマイグレーションファイルが作成される
🌟$rails db:migrate
→データベースに変更を反映(忘れがちなので気をつける!)

📖テーブルを操作するために、モデルと呼ばれる特殊なクラスを用いる
※post.rbというファイルがモデルフォルダに入っている。ApplicationRecordクラスを継承したPostクラスをPost(単数形)モデルという

🌟$rails console
→エンターを押すことでコンソールを起動できる。変数定義もできる。終了時はquitと入力

🌟post=Post.new(content:"文字列")
→上のコマンドの後、Postモデル(クラス)からnewメソッドでインスタンスを生成
→saveメソッドで保存
※ApplicationRecordを継承しているからsaveメソッドが使える

📖テーブルからデータを取得する時は、firstメソッドを使ったりallメソッドを使う
@posts=Post.all
→コントローラのindexアクション内で、配列で取得
🌟
<%@posts.each do |post| %>
  <%=post.content%>
<%end%>
→ビューで全ての投稿を表示

📖ヘッダーなど共通のレイアウトは、application.html.erbにまとめる
📖<%=yield%>という部分に各ビューファイルが代入される仕組み

🌟<%=link_to("第1引数","/URL")%>
→<a>タグに変換される
※第1引数は表示する文字、第2引数はURL


この記事が気に入ったらサポートをしてみませんか?