RailsアプリケーションでもJavascriptを多用していますが、当初からアセットパイプラインに乗ることなく開発を進めています。
Javascriptのライブラリを導入する場合、Railsのレイアウトテンプレートでライブラリをインクルードして、個別の関数を各Viewファイルで定義すると構造が比較的クリアになります。
その際、レイアウトテンプレートでyieldを活用して以下のように配置すると、Javascriptライブラリの初期化後にページ内で定義した関数を注入することができ、トラブルを減らせます。
<html>
<head>
<link rel="stylesheet" href="some-css-framework.css" />
</head>
<body>
<%= yield %>
<script src="some-javascript-library.js"></script>
<script>some_library_init();</script>
<%= yield :js_code %>
</body>
</html>
このテンプレート例では、各Viewファイルでcontent_forブロックを記述することで、yield :js_codeのERBタグをリプレースできます。
<% content_for :js_code do %>
<script>
call_library_specific_function();
</script>
<% end %>
また、content_forの記述位置にはとくに制約がないため、場合によっては、イベントをアタッチするDOMなど、関連するHTMLブロックとのコード凝集性を高める可能性もあります。
⁋ 2017/08/15↻ 2023/10/09
RailsのPRIMARY KEY(id)はデフォルトでAUTOINCREMENT付きINTEGERですが、Rails5.1でより大きなレコード数を扱えるようBIGINTに拡張されました。
この影響で …
Railsのテストツールはminitestがバンドルされています。rails testコマンドがテストランナーのコマンドです。以下の指定方法をよく使いますが、さらに細かいオプションで単体ケースの実行な …
一般的にはRuby on RailsのデータアクセスにActiveRecordを利用しますが、rails new my_app -OオプションでActive Record抜きのプロジェクトを作成できま …
RailsのWebサービス開発をテストする際、Controllerをログイン状態別にテストしたいシーンが多々あります。
この場合の、もっともプリミティブなテスト設計は以下のようなものになると考えていま …
Railsのトランザクションは、ActiveRecordの標準機能として手軽に利用できます。
トランザクションとは、 ACID 的な意味で2つ以上の処理をAtomicに実行する機能で、銀行の口座間振替 …
React.jsは、ネイティブアプリのようにインタラクティブなUIを作りやすくするためのJavascriptライブラリです。
従来、Webサービス分野ではjQueryが近い機能を果たしてきましたが …
各ファイルの用途 Ruby on Railsのi18n(国際化)標準機能では、以下の設定ファイル・カタログファイル・Viewテンプレートで多言語カタログを定義できます。 …
Railsでは、Modelが英語の単数形でテーブル名称が複数形になる、など、英語の単数形・複数形の対応を確認しておく必要があります。Railsは全般的に暗黙の規約にもとづいて動作するため、オブジェクト …
Ruby on Railsの標準的なデータベース定義ツールはActiveRecordの”マイグレーション”です。これは、データベース定義の変更点をSQLではなくRubyスクリプトで記述し、バージョン管 …
Ruby on Railsの開発環境は、新しいバージョンのruby環境とbundlerがあれば比較的簡単に整備できます。
dockerhubの Ruby公式イメージ はbundlerまでセットアップ済 …
EN contents
The standard database definition tool for Ruby on Rails is ActiveRecord’s Migration. It allows …