0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ralis学習備忘録その1 ~progate 道場レッスンIまで~

Posted at

はじめに

マジでただのメモ 読んでもらうために書いてないので悪しからず...

内容

progate の rails入門を進めていく
1章~3章まで

rails I

view / controller / routing についてざっくりと理解

view を作る

以下のコマンドで、view下に home フォルダと top.html.erb が作成される

rails generate controller home top

controller って何?

  • ページを表示する時、ralisの中では「controller」を経由してブラウザにviewを返している
  • rails generate controller home top を打った時、以下が起こる
    • controllerの中に「home_controller.rb」が作成される
    • この中に top メソッドが生成される
      • このメソッドを アクション という
  • controllerと同じ名前のviewフォルダからアクションと同じ名前のHTMLファイルを探してブラウザに返す
  • 用途ごとにcontrollerを作り分けるのがいいらしい

ルーティングって何?

  • urlとコントローラを紐づけるもの
  • config/routers.rbに定義
  • get "URL" => "コントローラー名#アクション名" って感じで書く

view は?

  • css ファイルは app/assets/stylesheets にある
  • 画像は app/public 下に配置することで、絶対パスで読み出せる

rails II

データベースとの接続をやっていく

変数宣言

  • <% posts="hogehoge" %> みたいな感じで宣言
  • 配列とかも宣言できる
  • <%= posts %> みたいに変数を使う
  • <% posts.each do |post| %> ~~ <% end %> みたいな感じで for文みたいなのを書ける
  • Controller 内に @posts = [~~] みたいな感じで宣言して、これをview の中で使う

データベースの作り方

  • rails g model Post context:text で、モデルファイルとマイグレーションファイルを作成出来る
    • context = カラム名
    • text = データ型
    • Post ~ モデル名
      ※ このコマンドは migrationファイルを作るだけ (=datamodelを作るだけ) で、dbに反映してくれるわけではない
  • マイグレーションファイルは、db/migrate 下に出来る
  • rails db:migrate をすることで実際のデータベースの反映される

「モデル」について

  • ApplicationRecordを継承したクラスをモデルと呼ぶ
  • rails g model コマンドから app/models/~~.rb に作成される

共通のレイアウトをまとめる

  • views/layouts/application.html.erb 内の <%= yield %> の部分に各viewファイルが代入され、application.html.erb の一部としてブラウザに表示されていた
    • ので、ここに共通のヘッダーとかは入れてあげるのが良い

rails III

URLParams の取得

  • routes の中で、get "posts/:id":id の部分が params という変数に入る
  • @post = Post.find_by(id: params[:id]) みたいな感じで、特定のidの何かを取ってくることが出来る
  • controller 内で 以下のようにして取得可能
  def show
    @id=params[:id]
    @post = Post.find_by(id: @id)
  end    
  • viewの中で以下のように変数展開
<% @posts.each do |post| %>
  <div class="posts-index-item">
    <%= link_to(post.content, "/posts/#{post.id}") %>
  </div>
<% end %>

データの作成

  • view 内で、<%= form_tag("hogeURL") do%> ~~ <% end %> を用いることで、submitしたデータを指定したURL に送る
    • 例えば form_tag("create") とすれば、routes内で create で指定されたアクションを起こす
  • redirect_to("fugaURL") をcontroller 内に書くことで、リダイレクトする
  • <textarea name="content"> として submit すると、rails側で params[:content] で取得できる
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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?