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

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

Tips

Rails : bundle updateの前にdry-runしたい

課題 bundle updateコマンドを叩いてライブラリを更新したらエラーで動かなくなったので少しずつ進めることに。 じゃあ少しずつ進めるために、どのライブラリに新しいバージョンがあるのかを知るにはどうすればよいか。 対応 bundle outdated を使うと古くな…

Stripe: API実行レシピ

RailsコンソールおよびRails内でコピペして使う用の実例サンプル集。 カスタマー カスタマーを取得する cus = Stripe::Customer.retrieve("cus_XxwqzgXcn1XXsk") サブスクリプション付き cus = Stripe::Customer.retrieve("cus_XxwqzgXcn1XXsk", {expand:'su…

Vue.js プロパティの変更をデータに反映する

課題 Vuexでstateを管理していて、stateの変更によって 親コンポーネントで変更した内容を子コンポーネント(state未使用)に 反映したいが変更されたプロパティがデータに反映されなかった。どうすればよいか。 ちなみに親から渡されるプロパティはオブジェ…

Vue.js 強制的に再レンダリングする

課題 vuexのstateオブジェクトを更新したが画面に反映されない。 とりあえず現状のオブジェクトの内容で画面を更新したい。 注意 stateオブジェクトの更新が反映されなくなったら、まず最初にオブジェクトの構成が変わってしまっていることを 疑うべし。最初…

Nginxの標準エラー画面をカスタマイズする

課題 Nginxにてベーシック認証でエラーになった場合のエラーページのHTMLを変更したい。どうすればよいか 対応 ベーシック認証でエラーになるとサーバーはエラーコード401を返す。なので401エラー時の処理を指定して あげればよい。 401.html を用意する 401…

Capistrano3: 環境変数を読み込んで使う

課題 Capistranoで環境変数を使用したい。deploy.rb の default_env などで割り当てることはできるが、パスワードなど情報はここで持ちたくなく、 普段使用している direnv の .envrc ファイルを使いたい 対応 (注)前提: capistrano-rbenvが設定済みであ…

CSS:ボックスの角にだけ色をつける

課題 CSSでボックスの左上にだけ色をつけたい 対応 linear-gradient を利用する。もともとはある角度で複数の色をグラデーションさせる機能だが、パラメータによってはくっきりと別れさせることもできる 色をつけたい位置によって直線の角度を変える 左上 13…

Rails whenever指定方法あれこれ

Wheneverとは Rails上でcronによる定期実行バッチの処理時間を管理するためのライブラリ。crontabに記述する内容をruby言語で書ける セットアップ $ gem install whenever $ bundle exec wheneverize . コマンド 用途 コマンド Cronを書き換えずに更新内容を…

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

課題 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 を使うと項目の有無をチェックしてくれるので…

IdeaVimプラグインを使いつつTabキーによるインデントを可能にする

課題 JetBrailsのIDEにIdeaVimプラグインをインストールしているとエディタで複数行選択してからTabキーでインデントさせる処理が動作しない 対応 IdeaVimはVimでいうところの vimrc に相当する ideavimrc に対応しているらしい。.ideavimrc を起動時に読み…

/* Responsive: yes */