前人未踏の領域へ WEB・インフラ・プログラミング全般編

フロントエンド、バックエンド、インフラ、言語など、アプリ開発、IOT以外の記録

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

ubuntuへのmysql2インストール時にエラーになる

課題 Railsの 5.2.4がリリースされたのでupdateしようとしたところ、mysql2のアップデートでエラーになった。 /usr/bin/ld: cannot find -lssl /usr/bin/ld: cannot find -lcrypto collect2: error: ld returned 1 exit status Makefile:260: recipe for tar…

RSpecで _before_last_saveのテストが上手く動作しない

課題 値が変更されていた場合にのみ実行されるようなテストを書いたが、FactoryBotでcreateしたオブジェクトに _before_last_saveにFactoryBotでセットしていない値がセットされていて、調べるとDBのデフォルト値だった。 原因 FactoryBotでcreateしたオブジ…

Nginx CORS対応で複数ドメインを許可する

課題 SPAサービスを作るにあたり、APIとWebでドメインが異なるのでCORS対応をしたい。 かつ検品環境なのでlocalホストからのアクセスも許可したい。 環境 nginx version: nginx/1.14.0 (Ubuntu) 対応 Access-Control-Allow-Origin に同時に複数のドメインを…

曜日付きで日付を表示する

課題 Rubyで現在の日付を曜日付きのJPフォーマット 2019年11月15日(金) で返したい。 どうするのがよいか。 結論 I18nにそのものが定義されてた。 I18n.l Date.today, format: :long => "2019年11月15日(金)" フォーマットは strftime に従っているので ja.y…

バリデーションを項目ごとに1つにしたい

課題 ある項目に対して数値チェックと存在チェックを行いたい。数値チェックがNGな時点で存在チェックを満たさないのは自明なので これをスキップしたい。どうするのが良いか。 対応 バリデーションがNGだった項目は errorsにaddされるので、その存在チェッ…

異なるカラム名のモデルに対するバリデーションをConcernで共通化したい

課題 バリデーションを共通化したい。Concernを使いたいがモデルごとに違う名前を割り当ててしまった。 カスタムバリデータは大げさなので使いたくない。どうすればよいか。 対応 ActiveRecordの has_attribute を使うと項目の有無をチェックしてくれるので…

RubyMineのRSpec実行時にテストが固まる

課題 Mac上のRubyMineからRSpecを実行しているが、config内のファイルやModelクラスのvalidationなどを編集すると テストを実行しても途中で止まってしまい、RubyMineを再起動しないとテストが実行できなくなった。 原因 springのリロードがうまく機能してい…

RSpecでvalidates_dateの日付テストがうまくいかない

課題 当日の日付との比較を行う処理を validates_timeliness の on_or_before を使って記述しているが、RSpecにテストを記述する際に日付の固定がうまくできず( Timecop も travel_to もNG )、現在日時との比較になってしまう。 # 未来日の入力はエラーと…

/* Responsive: yes */