0
0

More than 3 years have passed since last update.

Rubyにおける○○.△△(ActiveRecordメソッド、インスタンスメソッド、データ取得)

Last updated at Posted at 2020-09-25

この記事を書いた背景

Rubyを学習している中で、○○.△△のパターンのコード(例: User.new)をたくさん見ました。
それぞれ使われ方が違うのではないかと思って調べたら、3つの使われ方のパターンが有りました。
ということで、今回は○○.△△のパターンをまとめました。

対象読者

Rubyを学習中の駆け出しエンジニアさん

実施環境

Ruby 2.6.5
Rails 6.0.3.3

3つのパターンがありました

①モデル(クラス)名.ActiveRecordメソッド名

モデルに対するテーブル操作で用いられます。
下の例では、『Tweet.all』、『Tweet.new』、『Tweet.find(params[:id])』の部分です。

class TweetsController < ApplicationController
  def index
    #Tweetモデル(Tweetsテーブル)の全データ取得
    @tweet = Tweet.all
  end


  def new
    #Tweetモデルのインスタンス生成
    @tweet = Tweet.new
  end

  def edit
    #Tweetモデル(Tweetsテーブル)のある1つのデータ(1レコード)取得
    @tweet = Tweet.find(params[:id])
  end
end

ActiveRecordメソッドについては、こちらの記事をご覧ください。とても分かりやすかったです。
https://qiita.com/ryokky59/items/a1d0b4e86bacbd7ef6e8

②インスタンス(変数)名.インスタンスメソッド名

インスタンスにメソッドをくっつけて使います。
インスタンスメソッドはインスタンスを生成しないと使えない。
下の例では、『number.calc(1,2)』の部分です。

class Number
  def calc(a, b)
    puts a + b
  end
end

number = Number.new()
number.calc(1,2)

③変数名.属性名

変数に格納された属性値を取得するときに用いられます。
下の例では、『user.nickname』の部分です。
Userテーブルのnicknameカラムのデータを取得します。

class UsersController < ApplicationController
  def show
    #Userモデル(Usersテーブル)のある1つのデータ(1レコード)取得し、変数userに代入
    user = User.find(params[:id])
    #変数userのnicknameカラムの情報(属性値)を取得し、インスタンス変数@nicknameに代入
    @nickname = user.nickname
  end
end

以上になります。参考になれば幸いです。

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