LoginSignup
0
0

More than 3 years have passed since last update.

indexアクションの設定 自分のメモ

Posted at

メモ 
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に読み込まれる!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0