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?

Rails学習メモ(初学者向け)②

Posted at

Rails学習メモ(初学者向け)

どうも、nus4です。

Rails講座の学習メモ2回目です。
複雑な内容になってくるのを感じていますが、
そういうときこそ、この学習メモ(アウトプット)が理解に役立っています。

お付き合いいただけますと幸いです。

学習方法

  • Progate Ruby on Rails5コース
     (Ruby学習に引き続き、愛用させてもらってます!)

📝 目次

Viewファイル(HTMLファイル)内の変数の書き方

# 変数の定義
<% 変数名 = "値" %>

# 変数の表示
<%= 変数名 %>

Viewファイル(HTMLファイル)内の配列の書き方

# 配列の定義
<%
    配列名 = [
        値1,
        値2
    ]
%>

# 配列の表示(each do)
<% 配列名.each do |変数名| %>
    <%= 変数名 %>
<% end %>

each doのはじめと終わりは表示用ではないので「<%= %>」ではなく「<% %>」で囲むことに注意。

アクション内での変数の定義

def アクション名
    @変数名 = 
end

ビュー内で宣言することもできますが、なるべくアクション内で宣言するようにしましょう。
変数名を「@」から始めることでビューファイルでも使用することができますので、つけ忘れないように注意しましょう。

テーブル(マイグレーションファイル、モデルファイル)の作成

# ターミナルコマンド
$ rails g model モデル名 カラム名:データ型
$ rails db:migrate

# 作成されるファイル
# db/
# └── migrate/
#     └── YYYYMMDDhhmmss_create_データベース名.rb      # マイグレーションファイル
#
# app/
# └── models/
#     └── モデル名.rb      # モデルファイル

マイグレーションファイルとは、データベースに変更を指示するファイルです。
データベース名は基本的に複数形で命名されるので、モデル名はデータベース名の単数形にします。(頭文字は大文字)

モデルファイルとは、テーブルを操作するファイルです。
ApplicationRecordクラスを自動的に継承しており、それにより、様々なデータベースに関するメソッドが使えます。

2行目のdb:migrateコマンドでマイグレーションファイルをデータベースに反映(作成)させます。
テーブル作成時は指定したカラム以外にid, created_at, updated_atという3つのカラムも自動で作成されます。

「rails g」の「g」は「generate」の略称です。
略さず書いても問題なく動作します。

Rails環境でRubyコンソールを起動

# ターミナルコマンド
# コンソールの起動
rails console

# コンソールの終了
quit

テーブルにデータ(レコード)を保存

# rubyコンソールを起動した状態で
# ①newメソッドでモデルクラスのインスタンスを作成
インスタンス名 = モデル名.new(カラム名: "値")

# ②インスタンスをテーブルに保存
インスタンス名.save

.saveメソッドはモデルクラスの継承元であるApplicationRecordクラスが持っているメソッドであり、メソッドの宣言は不要です。

データはデータベースの一番新しいidで保存されます。

テーブルからデータを取り出し(Railsコンソール)

# テーブルにある最初のデータを取得する
変数名 = モデル名.first

# 取得したデータの特定のカラム値を取得する
変数名.カラム名

# テーブルにある全てのデータを配列として取得する
変数名 = モデル名.all

# 取得した配列からインデックス番号"0"のデータの特定のカラム値を取得する
変数名[0].カラム名

テーブルからデータを取り出し(アクション)

def アクション名
    @変数名 = モデル名.first
    @変数名 = モデル名.all
end

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

Railsでは、「views/layouts/application.html.erb」に共通のHTMLを書いておくことができます。
このファイルには<%= yield %>というコードがあり、各ビューファイルはこの<%= yield %>部分に代入され、application.html.erbの一部としてブラウザに表示されるからです。
ヘッダーなど、使い回すレイアウトはここに集約させましょう。

HTMLにリンクを追加

<%= link_to("画面表示名", "/リンク先URL") %>

うまくまとめられているでしょうか…
改善や修正があればご指摘ください!

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?