メモ
database.ymlではデータベースの設定を記述できる
RDBとは表形式でデータを管理できるデータベース
RDBMSはRDBを管理するシステムで、RDBMSの中にはMySQLがある!!
複雑な機能をまとめたものをライブラリという
Gemの情報はGemfile内で管理する
データベースに記録する内容をマイグレーションファイルに記述する時
def change
create_table :tweets do |t|
t.string :name
t.text :image
end
のように記述する t.型 :カラム名 の形で記述
データベースに反映させるときは rails db:migrateコマンドを使用
・ここまでの流れで出来上がったカラム名に対してデータを追加する場合
コンソールを起動
Tweet.create(name: "takashi", text: "Nice to meet you!")
これでTweetモデルから作ったtweetsテーブルのnameカラムとimageカラムにそれぞれ情報を保存(create)できたことになる。
→でもレコード番号を指定してないなら保存できないんじゃ...??
と思ったけど勝手にレコード番号が1になるらしい
ツイート一覧表示
コントローラーにはindexアクションを定義する
routes.rbファイルに書き込む
7つのアクションへのルーティングを自動生成するメソッドとしてresourcesメソッドを用いる
Rails.application.routes.draw.do
resources :tweets
end
→resourcesの引数として :tweets というシンボルを指定している。
すると、/tweets のパスに対応するルーティングが生成される!
表示機能つまり、indexアクションのみを指定したければ resources :tweets, only: :index と記載
コントローラー編
rails d controller tweets でtweetsという名前のコントローラーを作る!
tweets_controller.rbを編集する!
app/controllers/tweets_controller.rbのパスを指定
class TweetsController にindexアクションを記載
def index
@tweets = Tweet.all
end
→これでtweetsテーブルのの中にある全てのレコードをインスタンス変数に代入し、ビューへ送れるようになった
ビュー編
index.html.erbというファイルを作成する。ここで、ツイート投稿全てを表示する
tweetsテーブルにある全ての情報を抜き出したいときはeachメソッドを使う!
@tweets.each do |tweet|
tweet.text
tweet.name
end
これで、全てのレコードから(eachメソッドによって)tweetsテーブルのtextカラムとnameカラムから情報を抜き出し、投稿一覧画面に表示できた!
<% %>などを全部省略して大事なとこだけ記載した
レイアウトテンプレートについて
→ヘッダーやフッターなど、全てのビューファイルで共通する部分を記載
application.html.erb というファイルに記載
これはapp/views/layouts/application.html.erb に存在する
application.html.erbのbody要素にある <%= yield %> に各ビューファイルの記述が集約される
CSSの記述に関して
→ app/assets/stylesheets/application.css
に記述する
stylesheetsというファイルの中に存在する●●.cssの記述は、全てapplication.cssに読み込まれる!