モデル (ActiveModel)

参考:

モデル (model) | Railsドキュメント (railsdoc.com)

ActiveRecord::Base | Ruby on Rails API [Official]

ActiveModel::Model | Ruby on Rails API [Official]

ActiveModel::Naming | Ruby on Rails API [Official]

Active Model の基礎 | Rails ガイド [公式]

Active レコードの基本 | Rails 日本語ドキュメント (Ruby STUDIO)

create_table | Railsドキュメント (railsdoc.com)

create / create!

参考:

create | Railsドキュメント (railsdoc.com)

create – ActiveRecord::Persistence::ClassMethods | Ruby on Rails API [Official]

create! – ActiveRecord::Persistence::ClassMethods | Ruby on Rails API [Official]

保存時の例外処理

参考:

save! create! update! のバリデーション例外を捕捉する – Qiita

find

参考:

find – ActiveRecord::FinderMethods | Ruby on Rails API [Official]

find_or_create_by / find_or_create_by!

参考:

Rails の find_or_create_by の block は create した際にしか実行されない – Qiita

find_or_create_by – ActiveRecord::Relation | Ruby on Rails API [Official]

update / update_all

参考:

update where in について | とりあえず php とか

Rails 5 allows to update records in AR Relation with callbacks and validations | BigBinary Blog

update – ActiveRecord::Persistence | Ruby on Rails API [Official]

update_all – ActiveRecord::Relation | Ruby on Rails API [Official]

save / save!

参考:

save – ActiveRecord::Persistence | Ruby on Rails API [Official]

save! – ActiveRecord::Persistence | Ruby on Rails API [Official]

assign_attributes / attributes=

参考:

assign_attributes – ActiveModel::AttributeAssignment | Ruby on Rails API [Official]

複数のレコードを生成する

参考:

配列の要素の数に応じて、複数のレコードを生成したい – teratail

レコードの配列を ActiveRecord::Relation に変換する

参考:

配列を ActiveRecord::Relation に変換する – Qiita

destroy_all / delete_all

参考:

destroy_all と delete_all – Qiita

destroy_all | Railsドキュメント (railsdoc.com)

destroy_all – ActiveRecord::Relation | Ruby on Rails API [Official]

delete_all – ActiveRecord::Relation | Ruby on Rails API [Official]

ids

参考:

ids – ActiveRecord::Calculations | Ruby on Rails API [Official]

pluck

参考:

pluck – ActiveRecord::Calculations | Ruby on Rails API [Official]

attributes

参考:

attributes – ActiveRecord::AttributeMethods::ClassMethods | Ruby on Rails API [Official]

attribute_names

参考:

attribute_names – ActiveRecord::AttributeMethods | Ruby on Rails [Official]

table_name

参考:

ActiveRecord::ModelSchema::ClassMethods | Ruby on Rails [Official]

Get table name from ActiveRecord – Stack Overflow

to_key

標準の実装では id を含む配列を返す。

def to_key
  key = respond_to?(:id) && id
  key ?  : nil
end

参考:

to_key – ActiveModel::Conversion | Ruby on Rails API [Official]

to_key (ActiveModel::Conversion) | APIdock

to_param

標準の実装では、モデルの全てのキーをハイフンで連結した文字列を返す。

def to_param
  (persisted? && key = to_key) ? key.join("-") : nil
end

参考:

Rails で URL にモデルの ID 以外の値を表示する Tips | Rails Webook

to_param – ActiveModel::Conversion | Ruby on Rails API [Official]

to_key / to_param のカスタマイズ

参考:

to_key と to_param で URL や HTML 中のリソースの id を別の文字列にしてしまう – Qiita

普通のクラスを Rails のモデル化する | ボクココ

to_model

モデルのクラスを返す。ActiveModel の機能を実装したクラスの場合、self を返すデフォルトの実装が使用できる。

ActiveModel::Modelinclude する。

class A
  include ActiveModel::Model
end

もしくは、ActiveModel::Conversioninclude する。

class A
  include ActiveModel::Conversion
end

to_model が使えるようになる。

A.new.to_model.class # => A

参考:

to_model – ActiveModel::Conversion | Ruby on Rails API [Official]

アトリビュートのデフォルト値を設定する

after_initialize コールバックでアトリビュートのデフォルト値を設定する

class Person < ActiveRecord::Base
  after_initialize :init

  def init
    self.name ||= "John"
  end
end

参考:

How can I set default values in ActiveRecord? – Stack Overflow

ActiveModel::Model

参考:

ActiveModel::Model | Ruby on Rails API [Official]

ActiveModel を使って DB と関係ない Form を作成する | tanihiro.log

ActiveModel::Model で簡単に ActiveModel の機能を利用する | happy lie, happy life

Active Model を使って、Class にバリデーションなどの便利機能を追加 | 酒と涙とRubyとRailsと

ActiveModel::Name

参考:

ActiveModel::Name | Ruby on Rails API [Official]

new – ActiveModel::Name | Ruby on Rails API [Official]

ActiveModel::Validations on anonymous class – Stack Overflow

human

参考:

ActiveModel::Name | Ruby on Rails API [Official]

ActiveModel::Translation

参考:

Rails の Form オブジェクトの日本語化 – Qiita

ActiveModel::Translation | Ruby on Rails API [Official]

human_attribute_name – ActiveModel::Translation | Ruby on Rails API [Official]

How can I translate ActiveRecord model class name? – Stack Overflow

ActiveModel::Dirty

  • changed?モデルに変更が加えられているかどうかを返す
  • changesモデルに加えられた変更前後の値をアトリビュート名をキーにしたハッシュとして返す

参考:

Rails の ActiveRecord でカラムの変更前後の情報を取得 – Qiita

Rails で変更前の値、型変換前の値、などなど | TECHSCORE BLOG

Rails でモデルの変更前後の値 | 酒と涙とRubyとRailsと

ActiveRecord でデータを更新後に任意のカラムのデータが更新されたかを知る方法 | まっしろけっけ

ActiveRecord の changed? が非推奨になっている – Qiita

Tracking Attribute Changes in Rails 5 | Ruby Plus (rubyplus.com)

Checking for Changed Attributes in Ruby on Rails | Jason Charnes

ActiveModel::Dirty | Ruby on Rails API [Official]

rails/dirty.rb at 5-2-stable · rails/rails – GitHub

check if attribute changed – Stack Overflow

ActiveModel::Serialization

参考:

ActiveModel::Serialization | Ruby on Rails API [Official]

DateTime

  • ActiveModel::Type::DateTime
  • ActiveRecord::Type::DateTime

参考:

ActiveRecord::Type::DateTime | Ruby on Rails API [Official]

rails/active_record/type/date_time.rb at v5.2.3 · rails/rails – GitHub

rails/date_time.rb at v5.2.3 · rails/rails – GitHub

rails/date.rb at v5.2.3 · rails/rails – GitHub

rails/time.rb at v5.2.3 · rails/rails – GitHub

apply_seconds_precision

参考:

apply_seconds_precision – rails/time_value.rb at v5.2.3 · rails/rails – GitHub

TimeZoneConversion

参考:

ActiveRecord::AttributeMethods::TimeZoneConversion | Ruby on Rails API [Official]

rails/time_zone_conversion.rb at v5.2.3 · rails/rails – GitHub

active_type

参考:

makandra/active_type: Make any Ruby object quack like ActiveRecord – GitHub

Rails で fat model を避けるための、あまり知られていない方法について | おもしろ web サービス開発日記

モデルの一覧を取得する

参考:

Rails でモデルを全列挙する方法 | Ruby, Rails のコードメモ

How to List Out All the Models in Rails Console | Bishal Shrestha

Rails List All Models – GitHub Gist

List all model names in rails console – GitHub Gist

Is there a way to get a collection of all the Models in your Rails app? – Stack Overflow

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA