0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RailsでAPI作成時のメモ

0
Last updated at Posted at 2021-04-07

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で自動修正

まとめ

個人的に覚えたことを羅列しただけになってしまったので、
しっかりと勉強できた時に再度投稿したいと思います。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?