Entries from 2020-01-01 to 1 year

ruby における配列操作

簡単なまとめ 一つ目の引数にインデックスを、二つ目の引数に取得したい要素の数をいれると、そのインデックスから引数分だけ要素を取得する。 a = [0, 1, 2, 3, 4, 5] a[2, 2] #=> [2,3] 要素数を指定した代入 a = [0, 1, 2, 3, 4, 5] a[1, 3] = "a" #=> [0…

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…

ES2015(ES6)のまとめ

今回はJavaScriptのES2015(ES6)についてまとめてみました。 そもそもES2015とは何か? ECMASCriptの6th Editionのこと。ECMAScript 6th editionの6を取ってES6と呼ばれていたが、2015年に標準化されたため正式名称はES2015になりました。 「変数(letとconst)…

入れておくと便利なvscodeの拡張機能

今回はvscodeに入れておくと便利な拡張機能、プラグインについてまとめてみました。 [HTML/CSS] CSS Peek => HTMLファイル上でclassにフォーカスをあてると、定義されたCSSスタイルをチェックしたり、class名からCSSファイルを検索したりできる。 open in br…

sshや公開鍵・秘密鍵の設定について

今日はsshや公開鍵・秘密鍵の設定についてまとめてみました。 クライアント側(接続する側)での公開鍵・秘密鍵の生成 公開鍵・秘密鍵を生成する時は、「ssh-keygen」コマンドを使います。 ssh-keygen -t rsa . (省略) . The keys randomart image is: +--[ …

herokuコマンドのまとめ

herokuコマンドについてまとめてみました。 アプリを作成する(名前は自動生成) heroku create >Creating app... done, fathomless-beyond-39164 >https://damp-fortress-5769.herokuapp.com/ | >https://git.heroku.com/damp-fortress-5769.git アプリを作成…

Railsにおけるバリデーション(validation)

今回はRailsにおけるバリデーション(検証)について見ていきましょう。 バリデーションはモデル(Model)についた機能であり、ユーザーから渡されたデータをDBに保存する時に必ず実施される重要なステップです。 テーブルのレコードを作成・更新する時、「…

Railsにおけるシンボルの概要と利点

Railsでコードを組んでいるとよく「:cat」のようなものを見かけると思います。これは「シンボル」と呼ばれ、名前を示すオブジェクトです。見た目は文字列ですが、実際バックでは整数として扱われます。Raislではよく登場し、使いこなせるようになるとコード…

Ruby、Railsで使われる主要なメソッド

久しぶりにブログを更新しました。今日はRuby、Railsでよく使われるメソッドについてまとめてみました。いずれもユーザーが定義しなくてもすでに準備されているメソッドです。 Railsでは、Ruby単体では利用ができない特殊なメソッド(present?など)があるの…