Railsで簡単なAPIを作成した時に覚えた事メモ
本記事はRailsで簡易的なAPIを作成した時に覚えた事の備忘録です。
作成手順等は記載しておりません。
また完全に個人的なメモの為、APIに直接関係ない事を記載してます。
メモ
①find_or_create_byメソッド
モデル.find_or_create_by(条件)という記述で、条件を指定して、該当のデータがなければ、データを作成するメソッド
②transaction
transactionとは、切り分ける事が困難な処理を1つにまとめて処理する事。
→これにより、複数の処理で片方だけ処理されてしまうという事態を防ぐ事ができる。
ActiveRecord::Base.transaction do
# 例外が発生するかもしれない処理
end
# 例外が発生しなかった場合の処理
rescue => e
# 例外が発生した場合の処理
③ActiveModel::Conversion#to_modelメソッド
FormObjectを用いた実装の時に、to_modelメソッドを用いる事で、クラスをモデルのような扱いをする事できます。
to_model
idea
end
④joinsメソッド
joinsメソッドとは、テーブルを内部結合して検索するためのメソッド
これで2つのテーブルに関連するものだけを取得する事が出来ます。
モデル名.joins(関連するテーブル)
⑤selectメソッド
selectメソッドとは、取得したい列を指定するメソッドです。
先ほどのjoinsメソッドと組み合わせて使用する事が出来ます。
モデル名.joins.select(:取得したい列)
⑥AS句
AS句を用いるとある値を指定した名前で取得できます。
※AS句について理解不十分なところもあるため、学習後に間違いあれば編集します
今回は、取得したデータをIDではなく名前で返したい為、以下のようなコードになりました。
Category.joins(:ideas).select('ideas.id, name AS category, body')
Rubocopの導入
gemファイルに以下を記述、bundle installとtouch .rubocop.ymlを実行。
group :development do
gem 'rubocop', require: false
end
bundle exec rubocop -aで自動修正
まとめ
個人的に覚えたことを羅列しただけになってしまったので、
しっかりと勉強できた時に再度投稿したいと思います。