Entries from 2020-08-01 to 1 month

I18nとlocale

I18nとは、ある言語の文言を別の言語の文言に翻訳してくれる機能のこと。 多言語化以外にも、何度も使う文言を一限管理するために使われる。 住所、会社名、時間をフォーマットする時の形式、今日の日付を出力する時の形式などを管理する。 まずconfig/appli…

BigDecimalについて(Ruby)

参考URL qiita.com Rubyにおいて小数点の計算はどうなるのだろうか。 > 1.2 -0.9 => 0.29999999999999993 > 1800 * 1.08 => 1944.0000000000002 普通に計算すれば答えは「0.3」「1944 」だが、そうはならない。これはコンピュータを使った計算でよくありがち…

RailsにおけるScope

scopeとはクラスメソッドを使う際、可読性を保つためにあるものである。 例えば、あるUserのidを降順にし、かつ5つだけ表示させたい場合、以下のようなメソッドを使うことになる。 User.order(id: desc).limit(5) しかしながら、同じクエリ文が何回も出てく…

論理演算子「||」について

条件式として 一般的なORとしての利用。 if name == "taro" || name == "hanako" || name == "jiro" 代入演算子として 左辺が存在しない(偽)の場合、右辺の値が代入される。 「hoge ||= 1」の書き方は変数にデフォルト値を与えるときの定番の書き方。 # 一般…

SQLのパフォーマンスチューニングについて

そもそもパフォーマンスとは? 主に以下の3つ。 スループット 単位時間あたりの処理能力。並列処理が出来る件数が増えるほどこのスループットの値が向上する。 レスポンスタイム(レイテンシー) 処理を実行してからの結果が帰ってくるまでの時間。 1処理自体…

Railsにおけるクエリ文

Railsにおいてコンソールでクエリ文を叩くと、ログにSQL文も表示される。これもしっかりみてどのような動きをしているのか観察しよう。 参考 orderメソッド SQLのORDER BY節を作る。 指定したカラムの昇順(ASC)か降順(DESC)で並び替える。 @users = User.o…

Railsのルーティング

1つのルートの定義 get '/login', to: 'sessions#new' ここでは次のことを定義している。 GETメソッドで'/login'というURLにリクエストが来たら、SessionsControllerのnewアクションを呼び出す。また、このURLをlogin_pathというヘルパーメソッドで生成でき…

Railsにおけるenum

「Enum」は「列挙型」のこと。 この列挙型を扱う機能としてRuby on Rails4.1からActiveRecord :: Enumと言うモジュールが追加となった。 この機能は、モデルの数値カラムに対して文字列による名前定義が可能。また、データ操作用の便利なメソッドも提供して…

Enumerableのメソッドまとめ

exclude? 各要素に引数で渡された値が含まれていないか確認し、 含まれていない場合はtrue を返す。戻り値はboolean型。include?の反対。 [1, 2, 3].exclude?(5) # => true [1, 2, 3].exclude?(3) # => fals many? 条件を満たす要素が 2 つ以上ある場合に tr…

Rubyにおける配列操作まとめ

参考URL www.sejuku.net www.sejuku.net mapメソッド 処理後に戻り値で配列を作成する。 しかし、元の配列が上書きされることはない。元の配列の値を変えたいなら、再代入する必要あり。 array = ["a", "b", "c"] array.map {|item| item.upcase } # 各要素…

Rubyにおける正規表現

Rubyでも正規表現は使われるが、文字列マッチメソッドを使った方が早いので、正規表現を使うのは次なる手として考えた方がいい。 複雑なパターンを調べたい場合は正規表現を使うが、「開始文字列」「終了文字列」とのマッチを単純にチェックするだけなら、st…

Rubyのぼっち演算子

オブジェクトがnilの場合、メソッドを実行しようとするとエラーになってしまい、プログラミングの処理が停止してしまう。&.演算子(ぼっち演算子)を使用することで、エラーを制御することが出来る。 Rubyにおいてはレシーバーであるオブジェクトに対してあ…

respond_toとrespond_to?の違い

respond_to?とは・・・ respond_to?は、クラスに特定のメソッドがあるかどうかを検出するための Rubyメソッド である。 @user.respond_to?('eat_food') Userクラスにeat_foodメソッドがある場合、trueを返す。戻り値はbooleanである。ここでメソッドとは「de…