Ruby
Photo by Chad Peltola
ターミナル上で動作するインタラクティブなアプリケーションを開発するための古典的なライブラリに curses があります。
サーバーはLinuxの普及度が高いこともあり、cursesベースのアプリを作る …
セキュリティ対策やデモなどの目的で、ランダムな名前を生成するツールがあると便利です。 Faker は、多彩な名称を生成することに特化したRuby gemです。
用途別のメソッドを呼ぶたびに、名称の文字 …
Railsのコントローラー内で、render()やredirect_to()を複数書くと以下のようなエラーが出る場合があります。 …
Ruby on Railsはscaffoldが有名です。rails generateコマンドによりREST構造のスケルトンを生成できるものです。このジェネレータはscaffold以外にもテンプレートを …
Rubyのテストは標準のminitestでかなりカバーできますが、スタブとモックについては、 mocha gemを利用した方が良いでしょう。
スタブやモックは、テスト対象のコードが呼び出している一部の …
CSRF対策は長らくCSRFトークン検証が主流で来ましたが、いまクッキーのSameSite属性で制御する方式に切り替わろうとしています。経緯については CSRF is (really) dead に詳 …
bundlerは、Gemfileに記述したRuby gemsを維持するパッケージマネージャです。複数のプロジェクトを管理する場合には、bundlerの挙動をよく理解しておくと便利です。
bundler …
RubyやRailsプロジェクトのドキュメント生成ツールには、ruby標準の RDoc が便利です。
大規模な利用例としては、 Rails API があり、 コードリポジトリ から生成されているはずで …
前提知識 Railsのテストは、Ruby標準のテスト機能であるMinitestをWeb向けに拡張したもので、両方のリファレンスを活用します。
Railsテスティングガイド Railsのテスト方法に関す …
Rubyで開発した複数のライブラリを組み合わせてメンテナンスする場合、まずはrequireで利用できるようにパッケージ管理を確保すると便利です。Ruby標準のbundlerを利用すると、以下のとおりラ …
Railsのマイグレーションやridgepoleの t.timestamps でタイムスタンプが自動生成されますが、デフォルト値にDBMSの時刻取得機能を使用したい場合、以下のように指定すると反映され …
RailsのPRIMARY KEY(id)はデフォルトでAUTOINCREMENT付きINTEGERですが、Rails5.1でより大きなレコード数を扱えるようBIGINTに拡張されました。
この影響で …
bundle installで依存パッケージをインストールしようとした際、カレントディレクトリのGemfileが参照されず、意図したパッケージが入らないことがあります。
bundleコマンドじたいは正 …
Railsのテストツールはminitestがバンドルされています。rails testコマンドがテストランナーのコマンドです。以下の指定方法をよく使いますが、さらに細かいオプションで単体ケースの実行な …
一般的にはRuby on RailsのデータアクセスにActiveRecordを利用しますが、rails new my_app -OオプションでActive Record抜きのプロジェクトを作成できま …
RailsアプリケーションでもJavascriptを多用していますが、当初からアセットパイプラインに乗ることなく開発を進めています。
Javascriptのライブラリを導入する場合、Railsのレイア …
RubyのCSVクラスは、ファイル末尾に改行文字(\n, \r\nなど)が付いていると、読み込み時に”Unquoted fields do not allow \r or \n”エラーとなり停止するこ …
RailsのWebサービス開発をテストする際、Controllerをログイン状態別にテストしたいシーンが多々あります。
この場合の、もっともプリミティブなテスト設計は以下のようなものになると考えていま …
Railsのトランザクションは、ActiveRecordの標準機能として手軽に利用できます。
トランザクションとは、 ACID 的な意味で2つ以上の処理をAtomicに実行する機能で、銀行の口座間振替 …
React.jsは、ネイティブアプリのようにインタラクティブなUIを作りやすくするためのJavascriptライブラリです。
従来、Webサービス分野ではjQueryが近い機能を果たしてきましたが …
Ruby on Railsでコードを書き換えた場合、アプリケーションサーバーを再起動して反映する必要があるケースに直面します。
unicornを使用している場合、killで以下の3種類のシグナルを …
各ファイルの用途 Ruby on Railsのi18n(国際化)標準機能では、以下の設定ファイル・カタログファイル・Viewテンプレートで多言語カタログを定義できます。 …
Railsでは、Modelが英語の単数形でテーブル名称が複数形になる、など、英語の単数形・複数形の対応を確認しておく必要があります。Railsは全般的に暗黙の規約にもとづいて動作するため、オブジェクト …
Ruby on Railsの開発環境は、新しいバージョンのruby環境とbundlerがあれば比較的簡単に整備できます。
dockerhubの Ruby公式イメージ はbundlerまでセットアップ済 …