2019-01-01から1年間の記事一覧

Jest + Eslint で "context" is not defined(no-undef) で怒られたら

通常、Jestのcontextはglobalで定義してたりするので、ESlintのno-undefで怒られる。そのファイルのなかで const context とかしてないので、「contextってなんだ!」みたいなことですよね。 なので、ESlintの設定で、context という変数はglobalで定義され…

Stimulus + TypeScript + Slim で「もっと見る」「閉じる」を作る

要件 ・viewはslim ・可変なliが渡ってくるsidemenuでもっとみる/とじるをぬるっと動かす とりあえずviewはこんな感じ - unique = SecureRandom.hex(8) .show-more[data-controller="show-more"] input.show-more__check[type="checkbox" id="show-more__che…

dockerコンテナに入ってmysqlファイルをdumpする方法

dockerを使っている状況で、 「このsql手元でdumpして使って〜」 と言われた際に、どうやってやればいいのか分からなかったのでメモ。 dockerコンテナのなかにsqlファイルをcpする プロジェクト内に一旦sqlファイルをおいておく。あるいは適当なフォルダのpa…

知らないと恥ずかしいHTTPの基礎

HTTPはアプリケーション層の最上位に存在する HTTPの基本方針 ■HTTPはシンプル: - HTTP/2からメッセージをカプセル化させるようになったものの読みやすいよう考慮された作りになっている ■HTTPは拡張可能 - HTTPヘッダーによって拡張が可能。新しいヘッダー…

GTMで配信した広告(Google Adsense含む)をデバッグする

結論としては、Google Tag AssistantというGoogle Chromeの拡張機能を使うことで、実際の画面を見ながら想定通りのタグが表示されているかを確認することができます。 残念ながらぱぱっと自動化することはできず目検でやるしかないです...。 具体的な方法 ・…

【Rails】 is too long; the limit is 64 characters って怒られたら

Ruby on Railsで複合indexをつくりたいとき add_index :friends, %i[user_id target_user_id], unique: true みたいなことをします。 ちなみに↑は大丈夫なケースですね。 アカン場合 add_index :random_selected_user_accounts_logs, %i[id created_at], uni…

【Rails migration メモ】既存列の最初にadd_columnしたい

こういうテーブルがあるときに create_table :user do |t| t.string :uuid t.string :title t.timestamps end あ!description列が欲しい...! ってなったら以下の通り差し込む( add_column )することができます。 add_column :user, :description, first: t…

ActionMailerのレイアウトを確認しながら編集したい

RailsのActionMailerでレイアウトを編集するときに、いままではletter_opener_webで確認していたけど、普通に面倒くさいので調べたら、普通にRailsで標準機能がありました...。 railsguides.jp 実際に書いてみる 今回はHogeMailer.rb ## ActionMailerのレイ…

【アプリケーション設計】リファクタしやすいコードを意識する

コードを書いていて辛い時、それは「リファクタ」です。 工数が余計に必要になること バグを踏む可能性があること 最終commiterが自分だったとき などなど、辛いポイントがたくさんあります。 そんな辛い出来事をこれ以上増やさないためにできることは、「い…

【TypeScript】vuex-module-decoratorsを使うときに気をつけたいこと

" data-en-clipboard="true"> " data-en-clipboard="true"> Vuex + TypeScriptを実現するにあたって、vuex-module-decoratorsの採用は2019年現在最適解な気がします。 vuex-module-decoratorsは端的に言えば、TypeScriptでVuexを書くためのパッケージ https:…

【Rails】routes.rb でのpostとpatchは何が違う?

Ruby on Railsのroutes.rbではHTTPメソッドを使ってしてroutingを定義することができる。 メソッド 意味 GET リソースの取得 POST 子リソースの作成、リソースへのデータ追加、その他処理 PUT リソースの更新、リソースの作成 DELETE リソースの削除 HEAD リ…

【かんたんSQL】特定の文字列、文章を含むレコードのみを抽出するには?

SQL

" data-en-clipboard="true"> " data-en-clipboard="true"> " data-en-clipboard="true"> " data-en-clipboard="true">結論、 LIKE と % を使うことで簡単に抽出することができます。Google検索で特定の文字列で検索するイメージに近いです。 例えばこういう…

【TypeScript】 $event.target.value を取得するどこでも使える最適解

typescriptはご存知の通り型(Class)を宣言しないといけないです。 numberやstringなら簡単ですが、HTMLInputElementのValueならどうでしょうか?しかも、多くの場合$event.target.valueなどのかたちでdataを引き回すので、どのように型宣言すればいいのか分…

【Vue.js 基礎】親 -> 子にpropsとしてfunction(引数)を渡す方法

" data-en-clipboard="true"> " data-en-clipboard="true"> " data-en-clipboard="true"> " data-en-clipboard="true">思ったより解決策が思いつかなかったのですが、Vue.jsのissueに一発解決策があったのでここにメモします。 # Case「親から子に対してFunc…