2020-11-01から1ヶ月間の記事一覧
# crontab型の設定「分」「時」「日」「月」「曜日」 # 毎月27日〜31日まで0:00に実行 every '0 0 27-31 * * ' do command 'x' end 参考 https://morizyun.github.io/blog/whenever-gem-rails-ruby-capistrano/
同じ構造のクエリでもjoinによって結合する時の駆動表がどのテーブルになるかは実際に入る値によって異なる。 mysqlのオプティマイザによって判断される。 必ずしも最初に書いたテーブルが駆動表になり結合するかどうかはわからない。
JOINする場合は、駆動表が一番最初に表示される。 参考 https://free-engineer.life/mysql-explain/
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は両方のテーブルにあるレコードしか反映されない。 一方にしかないレコードは削除され…
指定したモデルの全てのクエリで使用されのでメンテナンス性が悪くなる。 default scopeでorderを使用しており、それに気づかずデバッグに時間がかかった。 参考 https://qiita.com/shierote/items/7ecbd0c099ddc3855067 https://qiita.com/qsona/items/2ca5…
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
&(アンパサンド)に対してシンボルオブジェクトを渡している。(&はブロックをProcオブジェクトに変換する) シンボルオブジェクトをprocオブジェクトに変換してメソッドとして呼ぶ実装がされている。 x = [1,2,3,4] x.map(&:to_i) #=> ["1","2","3","4"] 参…
system specででエラーが発生した場合はエラーがコントローラー内で起きている可能性があるので、使われているアクションの最後でbinding.pryで止めてみる。 正しく動く場合はコントローラー内ではエラーが発生していないことがわかる。
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
command + _→ 文字サイズ小さくなる command + shift + +→ 文字サイズ大きくなる
値オブジェクト(データベースに紐づかない、一意性のないオブジェクト)の属性値(attr_accessorで定義した属性)とデータベースに紐づくActiveRecordのオブジェクトの属性値(カラム)をマッピングする。 参考 https://qiita.com/okuramasafumi/items/16bcda8f63…
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…
number = [ 0, 1, 2, 3, 4 ] number[-1] # => 4 参考 https://qiita.com/jnchito/items/dedb3b889ab226933ccf
privateメソッドはそのクラスを継承した他のクラスでも呼び出すことができる。 参考 https://qiita.com/jnchito/items/dedb3b889ab226933ccf#comments
*変数名で配列の中で展開される。変数名だけだと配列は展開されず2次元配列になる。 number = [ 1, 2, 3 ] array = [ 0, *number, 4 ] # =>[ 0, 1, 2, 3, 4 ] 参考 https://qiita.com/jnchito/items/dedb3b889ab226933ccf#comments
capybaraでリンクやボタンをクリックする場合クラスやリンクの文字列だけでは重複する場合がある。 以下のようにクラスとリンクの文字列で指定できる。 #view <a class="page-link test_click" href="#">2</a> #rspec find('.test_click', :text => 2).click 参考 https://qiita.com/fkagami/items/d9ac438…