Closed1

RailsとReactの課題をやった時に知った知識をまとめる

ハガユウキハガユウキ

ここまでのまとめ

Active Supportは、Ruby言語の拡張やユーティリティを提供するRuby on Railsのモジュールである。
(TimweWithZoneだったり、present?やblank?など)
Ruby on Railsじゃなくても、単体のRubyで使うこともできる。

https://github.com/rails/rails/blob/91fd679710118482f718ea710710561f1cfb0b70/activesupport/lib/active_support/values/time_zone.rb
https://railsguides.jp/active_support_core_extensions.html#親
https://apidock.com/rails/ActiveSupport/TimeWithZone
https://madogiwa0124.hatenablog.com/entry/2019/05/26/144214

require
https://wild-outdoorlife.com/ruby/require/

json renderで何をやっているか
Railsのコードリーディングをする際に役に立ちそうな知識が書いてある
https://qiita.com/okuramasafumi/items/b52c9c9e5d3e7cdfa371

ミクシンしたら、モジュール名を指定しなくても、モジュールで定義したメソッドや定数が使える。なるほどなあ
https://qiita.com/tomokichi_ruby/items/b348d7a44928262cc7e4
https://railsguides.jp/initialization.html

オープンクラスは、クラスを再オープンして、メソッドを追加したり、修正したり出来るやつ。使い方には気をつけた方が良い

https://qiita.com/kidach1/items/b1672f1c16e2d15f2d9c

sinatra
https://github.com/sinatra/sinatra/tree/main/examples

422 Unprocessable Contentは、サーバーがリクエストエンティティのコンテンツタイプを理解し、リクエストエンティティの構文は正しいが、含まれる命令を処理できなかったことを示す。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/422

ActiveSupportのpresent?はblank?の結果の逆
blank?は、オブジェクトが空文字, 空白文字, false, nilの時にtrueを返す。
https://pikawaka.com/rails/blank#blank?メソッドの使い方

minitestで特定のテストだけ実行したいなら、メソッド名を指定する
https://blog.willnet.in/entry/2013/02/21/202952

sinatraでjsonレスポンス
https://rightgo09-ruby.hatenadiary.org/entry/20130828/p1

ActiveSupportのTimeWithZone
https://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html
https://github.com/rails/rails/blob/91fd679710118482f718ea710710561f1cfb0b70/activesupport/lib/active_support/values/time_zone.rb#L31-L183

バリデーションの具体的な処理のメソッドをクラスの中で定義する場合、そのメソッドを呼び出すためには、validateメソッドを使う。他にも独自バリデーションを定義する方法はあって、その場合は、クラスを使ったりする。それは他の部分で使いたいから使っていたりする。
https://railsguides.jp/active_record_validations.html#カスタムメソッド
https://mintaku-blog.net/rails-ownvalidation/

RailsでSQLのGROUP BYを使いたいなら、groupメソッドを使えば良い
https://qiita.com/yuyasat/items/e26bcf0eb2c89c63db9d

Railsで他テーブルを結合して、whereをしたい時に見る記事
https://zenn.dev/emono/articles/4992222541173b

Railsのenumってstring型でカラムでもいけたのか、
今までboolとintegerしかカラムに設定しちゃダメなのかと思ってた
https://qiita.com/minty/items/cbbc884d76d419fe21fe#基本的な書き方

参考になる
https://note.com/kenzan100/n/nc04b0fc0e046

SRE調べる時に参考になるかも
https://zenn.dev/kenzan100/articles/a32081ea3f392a

enumを設定すると、インスタンス生成時にバリデーションが設定される
https://soccer1356abc.hatenablog.com/entry/2018/12/22/150516

createに配列を渡すと、バルクインサートできる
https://obel.hatenablog.jp/entry/20191215/1576350000

トランザクション

ActiveRecord::Base.transaction do
  Alice.pay!(100) # Aliceの所持金から100円減らす
  Carol.receive!(100) # Carolの所持金を100円増やす
end

https://zenn.dev/igaiga/books/rails-practice-note/viewer/ar_transaction_lock

クラスメソッドの定義方法
https://qiita.com/Linda_pp/items/b7135ae1f0def6058c6c

複合ユニーク制約
https://310nae.com/rails-uniqueness/

enumはActiveRecordのモジュールなのか
https://api.rubyonrails.org/v5.1/classes/ActiveRecord/Enum.html
https://api.rubyonrails.org/v5.1/classes/ActiveRecord/Enum.html#method-i-enum

has_and_belongs_to_many 初めて知った。中間モデルを介さずに多対多のアソシエーションを組めるそう
https://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-association

alphine linuxはapkでライブラリをインストールする。apk add --updateでリストをアップデートしつつ、ライブラリをインストールできる
https://tomcky.hatenadiary.jp/entry/2018/02/20/203657

stdin_openとttyについて
https://qiita.com/yuki_0920/items/dc3f32667d004979cc5a#stdin_openとttyについて

このスクラップは2023/11/12にクローズされました