薄々気づいてはいたんだが、クラス名のけつにbtnってつけたらボタンになる。恥ずかしい

 

新規投稿・投稿編集でform_withは同じコード、部分テンプレートが使える

渡されるインスタンスの中身(@postは空なのか、中身にすでに情報が入っているのか)で、行き先(createアクションに行くのか、updateアクションに行くのか)を勝手に決めてくれる

 

Prefix    Verb    URI Pattern               Controller#Action

post      GET     /posts/:id(.:format)      posts#show

post      PATCH   /posts/:id(.:format)      posts#update

post      PUT     /posts/:id(.:format)      posts#update

posts#showとposts#updateに対するルーティングが、post_pathという同じPrefix名になっている。これは、HTTPメソッド(GETかPATCH)で区別することができる。

 

特定のIDの記事をテーブルから取得する

@post = Post.find(params[:id])

           ↑3としたとき

変数@postにはid3のレコードの情報が代入される

 

prefixとは

prefixとはuri patternを変数化したもの。

prefix名に_pathをつけることによってパスとして認識される

例えばrails routesして

Prefixがrootとかnew_postだったら

viewにroot_pathとかnew_post_pathとつければ遷移する

<%= link_to '新規投稿', new_post_path class: "adf;ad" %>

みたいなね

 

 

form_withは自動で次のアクションへのパス(createとか)を設定してくれるので先にルーティングを設定してないとエラー出るnomethodとか

インスタンス変数に格納

@poppo = Poppo.find(1)

Poppoテーブルのid1をインスタンス変数@poppoへ格納

 

<h3><%= @poppo %></h3>

このままだとレコードを取得してしまうのでカラムを指定する

<h3><%= @poppo.message %></h3>

 

モデル継承継承

 

モデルの主な役割

1.コマンドを使用して、モデルとマイグレーションファイルを作成する。

2.マイグレーションファイルを編集・実行し、テーブルを作成する。

3.コントローラからmodelを呼び出してDBにアクセスする。

インスタンス変数に格納

@poppo = Poppo.find(1)

Poppoテーブルのid1をインスタンス変数@poppoへ格納

 

<h3><%= @poppo %></h3>

このままだとレコードを取得してしまうのでカラムを指定する

<h3><%= @poppo.message %></h3>

 

モデル継承継承

 

モデルの主な役割

1.コマンドを使用して、モデルとマイグレーションファイルを作成する。

2.マイグレーションファイルを編集・実行し、テーブルを作成する。

3.コントローラからmodelを呼び出してDBにアクセスする。

重要なコマンドや用語

  • rails g controllerコマンド
  • モデルを利用したデータ操作
  • ビューへの変数受け渡し
  • レスポンスとなるビューファイルを決める

 

 

コントローラの主な役割

1.データに対して処理を実行する

2.処理を行ったデータをフロントサイド(views配下のhtmlファイルを指す)に渡す

3.レスポンスとして返すビューファイルを指定する

 

erbタグ

<% %>

<%= %>rubyの変数とか表示したいときはこれ