Rails学習記 カラムの追加について

Rails学習記 カラムの追加について

 

端的に言うと方法は1つ

f:id:tmr3614:20190405072749p:plain

↑このコマンドを打てば問題なし

「add_追加するカラム名_to_追加したいテーブル名」

これでdbフォルダにカラムが追加されてるはずです。確認してみましょう

f:id:tmr3614:20190405072145p:plain

↑さっき打ったコマンドのファイルができてますねー。ファイルの中身も確認しましょう

f:id:tmr3614:20190405072607p:plain

ちゃんと追加されてることが確認されました。

f:id:tmr3614:20190405073341p:plain

f:id:tmr3614:20190405073356p:plain

僕みたいな初心者は上2つのファイルに直接加えちゃいそうですが、
Railsではご法度ですのでおやめください。

 

よろしくお願いします。



 

Rails学習 ⑦

Rails学習 ⑦

 

今回も「モデル」についてやっていきましょう。

 

実際に作り、学習していきましょう。

 

まずは「マイグレーションファイル」について

 

マイグレーションファイルとは・・・

データベースを生成する際の設計図のこと。

マイグレーションファイルを実行することによりファイルに基づきデータを生成してくれる。

「モデル」を作った際に自動的に作ってくれる。

 

マイグレーションファイルには「カラム」だけを持っており、

実際にユーザのデータを持っているわけではない。

※実際にデータを持っているのは「データベース」

そしてカラムのデータ形式(文字型か、数字型か)を示してくれる。

 

 

一連の流れを見ていきましょう。

今回は「名前」「年齢」のカラムを作っていきます。

rails g model User name:string age:integer」

↑モデルを作る呪文笑。「User」テーブルを作ります。

「name:string」文字型の名前「age:integer」数字型の年齢を作りますと言う意味。

次に今はマイグレーションファイルがある状態ですが、使える状態にしていきましょう。

rails db:maigrate」

↑これでデータベースが使える状態になりました。

f:id:tmr3614:20190324112335p:plain

「development.sqlite3」「schema.rb」などのファイルが作られたと思います。

「schema.rb」にはデータベースにどんな情報が入っているか、いつ作られた蚊などの情報があります。

「development.sqlite3」には実際に使われるユーザのデータが保存されていきます。

 

データベースの情報を見るには

rails dbconsole」で実行

「.tables」で作られたテーブルが表示されます。

※「.table」でも可

 

実際にデータを作っていきましょう。

rails c」を実行

「User」モデルからデータを作りたいので

User.create(name:"A",age:24)」で実行

f:id:tmr3614:20190324121334p:plain

↑こんな感じで作成できます。

見づらいけど作られています。

 

コンソールだと見づらいのでファイルでまとめてみます。

 

f:id:tmr3614:20190324122001p:plain

↑こんな感じでデータベースで作成、検索とかできます。

 

作成・追加・読込をやりましたが他にも「更新」「削除」機能があります。

CRUD処理」と言うもの⬇︎

f:id:tmr3614:20190324141007p:plain

↑こんな感じで作成〜削除までできるのでWEBアプリの機能を抑えています。

 

結構ややこしくなるところなので必ず復習をしましょう。

 

ではまた〜

Rails モデルについて

Rails モデルについて

 

モデルとは・・・簡単に言うと「データを操作する場所」です。

 

そこで登場するのが「データベース」

そもそも「データベース」とは。。。→データを蓄積した場所のこと。

 

ユーザとデータベースでデータのやり取りを行うことができます。

 

データベースには「id」「メールアドレス」「名前」「年齢」などの

いわゆる情報があり、順次追加されていくと「id」が振られていきます。

 

👇Udemyより:

udemy.benesse.co.jp

f:id:tmr3614:20190318203538p:plain

ãã¼ã¿ãã¼ã¹ã®ã¤ã¡ã¼ã¸ç»å

 

全体のことを「テーブル」

青の行を「レコード」

赤の列を「カラム」

それぞれ「テーブル」「レコード」「カラム」を設定することによって

どのデータを取得、読み込むかを指定することができます。

 

そこで大切なことが

①テーブル名に対応したモデルを作ってあげること。

②モデルを使うことでシンプルにデータ操作を行うことができる。

 

次回は実践的にやっていきましょう。

 

Rails学習⑥

Rails学習⑥

 

今回はフォームからデータを送ってみましょう。

 

若干省きますが新しいアプリを作り、サーバー立ち上げ、

コントローラーまで作ってみましょう。

作ったらまずはviewsファイルを見ていきましょう。

f:id:tmr3614:20190310100026p:plain

見慣れぬコードがある。解説していきましょう。

まずは「<%= form_tag("/create")  do %>」

「("/create")  do」ですがデータを送信した際に「create」って言うURLを使って送信したことになっています。

f:id:tmr3614:20190310103335p:plain

「routes.rb」のコードです。

「post "/create" to:"forms#input_age"」

「post」でユーザ側からデータを送信できる意味合いです。

「get」はURLにアクセスがありデータを渡してあげる意味合いです。

f:id:tmr3614:20190310101437p:plain

🔼ブラウザに表示されました。

f:id:tmr3614:20190310102040p:plain

HTMLのソースコードなんですが、なにやらいっぱい書かれています。

実際に書いたコードは少ないですが、裏側では色々な属性を付随させてくれていて、

セキュリティ対策も担ってくれています。

 

実際にデータを渡せるか見てみましょう。

f:id:tmr3614:20190310104515p:plain

f:id:tmr3614:20190310104551p:plain

データが渡せました。

「年齢が入力されました。」に関しては

f:id:tmr3614:20190310104707p:plain

コントローラにアクションを追加してました。

流れとしては

「年齢(数字)を送信>/createを使って受け渡されます>routes.rbで設定したpost~で

input_ageアクションの内容が表示される」といった流れになります。

 

f:id:tmr3614:20190310100026p:plain

「:test, :age」の2つの単語に関して解説していきます。

アクションを一部変更します。

再度データを送ると

f:id:tmr3614:20190310105834p:plain

f:id:tmr3614:20190310110030p:plain

ブラウザ側に送信したデータが表示されました。

「:test,:age」で取得したデータを受け渡してくれると言う意味です。

 

それではまた今度ー

 

Rails学習⑤

Rails学習⑤

 

前回はブラウザへ表示する「Views」の部分を学習しました。

 

表示するための「アクション名.html.erb」でブラウザへの表示を確認しました。

今回は少し裏側の話をしていきます。

 

HTMLを書いていた時に<! DOCTYPE html>や<head><body>など書いたと思われます。

 

Railsの場合書くなくていいの?」など疑問に思われるかもしれません。

その疑問に直撃していきましょう。

「app>views>layouts>application.html.erb」

f:id:tmr3614:20190309115439p:plain

見覚えがあると思います。

「application.html.erb」がテンプレートになっていたんですね。

そして僕たちが書いた「index.html.erb」は

<%= yeild %>で表示がされていたわけです。

他にも

<%= stylesheet_link_tag~~~>でcssが適用されます。

 

これで裏側をほんの少しだけ見ることができましたので次回も引き続きお願いします。

Rails学習④

Rails学習④

 

今回は「View」に関してやっていきます。

 

「View」は表示内容を制御してくれる見た目の部分です。

htmlのタグを書いていきます。

 

前回までの「Controller」で作成したappフォルダのcontrollerフォルダに

それぞれコントローラーがあると思います。

今回の「View」に関してはviewsフォルダを見ていきます。

その下層にあるのが作成したコントローラー名です。

そこにviewファイルを作っていきます。

f:id:tmr3614:20190309094328p:plain

memosフォルダの下層に「index.html.erb」とちょっと変わったファイル名を作成します。

「.erb」と言うのはRubyのファイルを埋め込むことができます。

後ほど解説いたします。

※コントローラーのアクションに合わせてviewsファイルを作る必要があるので注意

 

f:id:tmr3614:20190309094917p:plain

⬇️ブラウザでの表示が確認できればOKです

f:id:tmr3614:20190309094943p:plain

 

復習がてらコントローラからの繋がりを確認してみましょう。

 

①まず「rails g controller users」でコントローラを作成しました。

f:id:tmr3614:20190309100310p:plain

②次に作成したコントローラにアクションを定義します。

f:id:tmr3614:20190309100328p:plain

③そして次にroutesファイルでルーティングの設定をします。

f:id:tmr3614:20190309100357p:plain

④そして今回学んでいるviewsファイルを作成します。

※コントローラのアクションと紐づいております。

f:id:tmr3614:20190309094917p:plain

 

では本題の「.erb」に関してはやっていきましょう。

HTMLの中にRubyを埋め込めるものです。

 

文法的には<%= ○○%>と○○の中に処理を書いていきます。

f:id:tmr3614:20190309101601p:plain

今回は<%= 1+1%>としました。

ではブラウザの方でみていきましょう。

f:id:tmr3614:20190309101736p:plain

と、ちゃんと処理が実行されているのを確認できました。

<%=  %>は処理がそのままブラウザへ表示されます。

 

<%=  %>の他にもう1種類書き方があります。

<% %>「=」がなくなったバージョン

<% %>は別に見せなくてもいい処理を書くときに使います。

例えば条件分岐の「if文」。「if ~~」は見せなくてもいいですよね

 

実際に書いたコードをみていきましょう。

f:id:tmr3614:20190309103444p:plain

f:id:tmr3614:20190309103753p:plain

if文の条件式などは表示されず、処理結果だけが表示されているのが確認できればOK

 

他にも「@name」(インスタンス変数)に名前を代入

f:id:tmr3614:20190309104742p:plain

「index.html.erb」に@nameを

「<h1><%= @name %>さん、ようこそ</h1>」と書けば

f:id:tmr3614:20190309104847p:plain

ブラウザに表示されたことが確認できました。

f:id:tmr3614:20190309104909p:plain

サイトのログイン時などに用いることができます。

 

まとめると

<% 実行はするけれど表示はしない%>

<%= 実行、表示両方してくれる %>

 

 

と言う内容になっております。

Rails学習記③

Rails学習記③

 

今回は「ルーティング」「コントローラー」に関してやっていきます。

 

結構大切な部分なんで詳しくやっていきましょう。

 

まず関係性について!

 

本来は図などで説明するのですが、調達できなかったため文字だけで説明します。

 

「リクエスト」▶️「ルーティング」▶️「コントローラー」

リクエストに関しては普段の僕らだと思いましょう。

「ルーティング」に関しては僕らの要求を「コントローラー」に

繋げてくれる橋の役割だと思ってください。

「コントローラー」に関しては僕らの要求を処理してくれる裁判官だと思いましょう。

 

では実際にコマンドを打ち込みましょう。

①コントローラーを作る

 

rails g contoroller greets」(railsは規約にうるさいのでアプリ名は複数形にしましょう)

↑自動的にファイルを作ってくれます。

 

②アクションの設定

作成したファイルで下記のようにアクションを作り、処理を書いてください。

f:id:tmr3614:20190306062225p:plain


「def~end」までがアクションです。

ざっくり言うとページに「hello」を表示してください。と書いてます。

 

③ルーティングの設定

f:id:tmr3614:20190306062529p:plain

getがURLの部分。to:が「コントローラー名#アクション名」となっております。

 

ファイルを作ったら保存を忘れずに。

ページに飛ばなくて焦るので、、、

 

 

ではまた次回。