karlley's tech blog

学習メモや記録とか

Sinatra

SQLファイルをコマンドラインから実行してテーブル定義する

Sinatraを使ったメモアプリのDB版を進めています。 テーブルを作成するDDL文を書いたSQLファイルを読み込み、PostgreSQLにテーブル定義したいと思ったので調べてみました。 結論 psql コマンドの-f オプションを使ってDDLを定義したSQLファイルを読み込んで…

ディレクトリ・トラバーサルとは

Sinatraのメモアプリのプルリクでディレクトリ・トラバーサルの危険性があると指摘されました。 初めて聞く言葉だったのでディレクトリ・トラバーサルについて調べました。 結論 ウェブアプリケーションの中には、外部からのパラメータにウェブサーバ内のフ…

HTMLのフォーム内で空文字でのデータ送信時に警告を出す

Sinatraを使ったメモアプリを作成中に新規投稿、投稿編集時にformタグ内のinputが未入力でPOST、PATCHで送信できないようにしたかったので調べてみました。 結論 required 属性を使うことでクライアント側(ブラウザ)でフォームが未入力時に警告を表示できる …

vscodeでerbファイルをフォーマットする

Sinatraを使ったメモアプリの開発時にerbがフォーマットされなかったので設定しました。 結論 vscodeの拡張機能のBeautifyを使う。 なぜBeautifyなのか 似たようなフォーマッタとして拡張機能のPrettierがあるがerbファイルが上手くフォーマットされないらし…

nomarize.css の導入

Sinatraを使ったメモアプリの開発で久しぶりにCSSを書くことになりました。 リセット系のCSS、normarize.cssを読み込ませる手順を全く覚えていなかったので調べました。 ノーマライズCSSとは normarize.cssとはブラウザ間の差異を統一調整したCSSのことです…

Sinatra のルーティングの* と: の違い

フィヨルドブートキャンプの課題としてSinatraを使ったメモアプリの開発に取り組んでいます。 Sinatra のルーティングに使われる: と* の理解がいまいちすっきりしなかったのでメモ。 結論 : は名前付きパラメータ、* はワイルドカード : の値はparams['パラ…