tusbasaのブログ

業務や勉強中に調べたことを自分用にメモするブログ

2020-11-01から1ヶ月間の記事一覧

【cron】

# crontab型の設定「分」「時」「日」「月」「曜日」 # 毎月27日〜31日まで0:00に実行 every '0 0 27-31 * * ' do command 'x' end 参考 https://morizyun.github.io/blog/whenever-gem-rails-ruby-capistrano/

【SQL】explain テーブル結合の順番について

同じ構造のクエリでもjoinによって結合する時の駆動表がどのテーブルになるかは実際に入る値によって異なる。 mysqlのオプティマイザによって判断される。 必ずしも最初に書いたテーブルが駆動表になり結合するかどうかはわからない。

【SQL】explain

JOINする場合は、駆動表が一番最初に表示される。 参考 https://free-engineer.life/mysql-explain/

【SQL】inner join 書き方

select * from 表A, 表B where 表A.列1 = 表B.列2 and 表A.列3 = 値 と select * from 表A inner join 表B on 表A.列1 = 表B.列2 where 表A.列3 = 値 は同じ inner joinは両方のテーブルにあるレコードしか反映されない。 一方にしかないレコードは削除され…

【rails】default scope

指定したモデルの全てのクエリで使用されのでメンテナンス性が悪くなる。 default scopeでorderを使用しており、それに気づかずデバッグに時間がかかった。 参考 https://qiita.com/shierote/items/7ecbd0c099ddc3855067 https://qiita.com/qsona/items/2ca5…

【Mysql】SQLモードについて

MySQLは独自にSQL文を解釈しており、その設定をSQL-modeで行える。 参考 https://qiita.com/kumamo-n/items/d9a4fa3c95c8226204d8 https://www.wakuwakubank.com/posts/414-mysql-sqlmode/ https://qiita.com/hidetoshi-tsubaki/items/046d16ab46d954c55a40

【ruby】&:メソッド名の技法

&(アンパサンド)に対してシンボルオブジェクトを渡している。(&はブロックをProcオブジェクトに変換する) シンボルオブジェクトをprocオブジェクトに変換してメソッドとして呼ぶ実装がされている。 x = [1,2,3,4] x.map(&:to_i) #=> ["1","2","3","4"] 参…

【rspec】デバッグについて

system specででエラーが発生した場合はエラーがコントローラー内で起きている可能性があるので、使われているアクションの最後でbinding.pryで止めてみる。 正しく動く場合はコントローラー内ではエラーが発生していないことがわかる。

【rspec】capybara

pageの中身はpage.bodyで確認することができる。 参考 http://xengineer.hatenablog.com/entry/2014/10/15/rspec_%2B_capybara%E3%81%AEpage%E3%81%AE%E4%B8%AD%E8%BA%AB

【vscode】文字サイズ変更 mac

command + _→ 文字サイズ小さくなる command + shift + +→ 文字サイズ大きくなる

【rails】composed_of

値オブジェクト(データベースに紐づかない、一意性のないオブジェクト)の属性値(attr_accessorで定義した属性)とデータベースに紐づくActiveRecordのオブジェクトの属性値(カラム)をマッピングする。 参考 https://qiita.com/okuramasafumi/items/16bcda8f63…

【Ruby】select reject

selectは各要素をブロックで評価し、trueになる要素を抽出する。 rejectはfalseになる要素を抽出する。 array = [ 1, 2, 3, 4, 5 ] selected = array.select { |i| i > 3 } p selected #=> [ 4, 5 ] array = [ 1, 2, 3, 4, 5 ] rejected = array.reject { |i…

【Ruby】マイナスのインデックスで最後の文字や要素を指定する

number = [ 0, 1, 2, 3, 4 ] number[-1] # => 4 参考 https://qiita.com/jnchito/items/dedb3b889ab226933ccf

【Ruby】privateメソッド

privateメソッドはそのクラスを継承した他のクラスでも呼び出すことができる。 参考 https://qiita.com/jnchito/items/dedb3b889ab226933ccf#comments

【Ruby】配列の連結

*変数名で配列の中で展開される。変数名だけだと配列は展開されず2次元配列になる。 number = [ 1, 2, 3 ] array = [ 0, *number, 4 ] # =>[ 0, 1, 2, 3, 4 ] 参考 https://qiita.com/jnchito/items/dedb3b889ab226933ccf#comments

【rspec】system spec ボタンクリック

capybaraでリンクやボタンをクリックする場合クラスやリンクの文字列だけでは重複する場合がある。 以下のようにクラスとリンクの文字列で指定できる。 #view <a class="page-link test_click" href="#">2</a> #rspec find('.test_click', :text => 2).click 参考 https://qiita.com/fkagami/items/d9ac438…