見出し画像

Ruby on Rails5 学習メモ #01

仕事でエンジニアの方々が使っている言語がRailsなのでなんとなくでも理解をできたらと思い、休みの日に少しずつProgateで学んだことのメモしていく。

個人メモなので適当です。

アプリケーション新規作成

Railsで新しいアプリケーションを作成してサーバーを起動するコマンド。

rails new アプリケーション名
rails server

新しいページを作成する

新しいページを作成するにはコントローラーとアクションを宣言。URL上だとdomain/コントローラー名/アクション名となる

rails generate controller コントローラ名 アクション名

ルーティングを変える

ブラウザでアクセスした際のルール(ルーティング)を変えるには/config/routes.rbを変更する

get "コントローラー名/アクション名" => "コントローラー#アクション"

共通部分のHTML変更

Railsではmeta部分やbodyタグ部分は、デフォルトでincludeされている。そのファイルは、/views/layouts/application.html.erbにある。

リンクの記述

html.erbファイル内でリンクを記述するには、link_toメソッドで記述する

<%= link_to("リンクタイトル", "URL") %>

モデルとマイグレーションファイルを同時に作成

モデルとデータベーステーブルを作成し、データベースに変更を反映するにはrails g modelコマンドを実行する。マイグレーションファイルの内容をデータベースに反映させるにはrails db:migrateコマンドを実行する。

rails g model テーブル名(単数形) カラム名:データ型
rails db:migrate

データベース操作のコンソール立ち上げ

データベースを操作するには、rails consoleコマンドでコンソールを立ち上げる。閉じる場合はquitコマンド。

rails console
quit

テーブルにデータをinsert

作成したデータベースにデータを追加するには以下のコマンドをrails consoleから実行する。格納した変数をsaveすると反映する。

変数 = テーブル名.new(カラム名:"追加データ")
変数.save

コントローラーでテーブルのデータをすべて取得

コントローラのアクション内の記述する場合は、テーブル内のデータをすべて取得して配列に代入。@を付けることでビューから参照できる。

@配列 = テーブル名.all

テーブルのデータをすべて取得して並び替え

テーブル名.allで特定カラムでorder byで並び替えるには:ascで昇順、:descで降順で取得できる。下記は降順。

@配列 = テーブル名.all.order(カラム名: :desc)

ビューでループしてデータを表示

コントローラーで@を付けていれば受け取れる。それをeachでループさせ変数に格納。変数.カラム名で取り出して表示する。

<% @配列.each do |変数| %>
<%= 変数.カラム名 %>
<% end %>

ルーティングを動的にする

ルーティングを動的にするには:引数にすることで動くようになる。

get "/コントローラー/:引数" => "コントローラー#アクション"

動的URLの引数をparams変数で取得

コントローラのアクション内では、ルーティングで設定したURLの「:引数」の値を取得することができます。その値はparamsという変数にハッシュとして入っている。params[:引数]とすることで、その値を取得することができます。

 @変数 = params[:引数]

params変数を元にデータベースから取得

URLの「:引数」と合致するデータベースの行を取得して代入するにはfind_byを使う。

@変数 = テーブル名.find_by(カラム名:params[:引数])

Ruby基礎からRailsのここまでやったけど、PHPの時も感じたけど、やっぱりフレームワークって苦手だなぁ。あと書き方がPHPとはまあまあ違うのでむむむってなることが多い。あと、老化の所為かすぐ忘れる。

やっぱプログラムは作り続けないとものにならんだろうなぁ。とりあえず、講座の最後までやってみよう。