2022-06-01から1ヶ月間の記事一覧

rails:index_byメソッドで配列をkey-value型hashに変換

配列で受け取ったデータをeachで検索(リニアサーチ)するより、key-value型のhashに変換してkey指定で取得した方が、コストもかからず効率がよい。 index_by メソッドを使うと、key-value型のハッシュに変換してくれる。 ただし、このメソッドは rails(acti…

ruby:hash配列のkey検索

hash配列を指定keyで検索し、取得する。 mast = [{code: "101", name:"abc"}, {code: "201", name:"cde"}, {code: "101", name:"a"}, {code: "102", name:"efg"}, {code: "101", name:"abc"}, {code: "301", name:"b"}] select だと該当する全行を取得(Array…

ruby:csv操作

CSVデータの操作サンプル。 parse すると、array になる。 >> require 'csv' => true >> require 'pp' => false >> s = <<EOS id,first name,last name,age 1,taro,tanaka,20 2,jiro,suzuki,18 EOS >> pp s "id,first name,last name,age\n" + "1,taro,tanaka,20\n" + "2,jiro,suzuki,18\n" => "id,first name,last name,age\n1,taro,t</eos>…

unix:コマンドメモ

よく使うコマンド。 # 環境確認 env # システム状況確認(プロセス、CPU、メモリ等の統計情報) # ctrl + c で中断 top # cpu使用率順 top -a # メモリ使用率順 top -a [PID] # 特定プロセスを監視 top -d1 # 1秒ごとに更新 top | grep ruby # ディスクの使…

git:stashで変更内容を退避、別ブランチに反映

ベースにしていたブランチが更新された時など、 rebaseせずに、変更内容を退避、再反映するには、以下の流れ。 # ブランチ構成が以下 # feature/baseブランチから、devブランチを切って作業中 # master # feature/base # * dev/task001 # 変更を退避(-u は …

rails:migrate実行

db:migrateの実行について。 # modelからgenerate (migrationも作成される) rails g model staffs bin/rails g model staffs #どっちでも # table追加・変更だけのときはmigrationからgenerate rails g migration AddTypeOfGenderStaffs rails g migration C…

SQL:条件付きCOUNT

今まで知りませんでした。 条件付きのcountがこんなに簡単にとれるとは。 select count(*) # 全件 ,count(staffs.type = 1 OR NULL) as byte_count ,count(staffs.type = 2 OR NULL) as part_count from staffs; where staffs.invalid = true 参考:多謝) …

rails:コンソールから生SQLを実行する

以下のように、rails consoleから生SQL実行できる。 戻り値がActiveRecord::Resultなので、hash化すると見やすい。 (hash化しなくても見れる) sql = 'SELECT staff_type, count(*) FROM staffs where is_valid = true group by staff_type order by staff_…