Ruby on Railsにおいて、アセットパイプラインはデフォルトで有効になっており、JavaScriptファイルやCSSファイルを圧縮して配布するのに使われます。
しかし、アセットパイプラインはライブラリ間のバージョン違いによって躓きやすく、「エンジン」を使う場合には、設定に少し戸惑うかもしれません。
このエントリでは、Ruby on Rails 6のエンジンでアセットパイプラインを使うための設定を説明します。
エンジンについては下記チュートリアルを参照してください。
以下、エンジン名はチュートリアルで登場する Blorgh
を使って説明します。
アセットパイプラインを使用するためにはsprocketsが必要です。
コメントアウトされていないか確認します。
require "sprockets/railtie"
テストディレクトリ以下にあるdummyアプリケーションの方も併せて確認しておきましょう。
require "sprockets/railtie"
レイアウトのheadタグ内に、生成されたCSSとJavaScriptを読み込むタグを追加します。
<!DOCTYPE html>
<html>
<head>
...
<%= stylesheet_link_tag "blorgh/application" %>
<%= javascript_include_tag "blorgh/application" %>
</head>
...
アセットの配置場所をblorgh/app/assets/
にするために、エンジンにパスの設定を追加します。
module Blorgh
class Engine < ::Rails::Engine
isolate_namespace Blorgh
initializer "blorgh.assets.precompile" do |app|
app.config.assets.paths << File.expand_path("../../app/assets", __dir__)
app.config.assets.precompile += ["blorgh/application.css", "blorgh/application.js"]
end
end
end
もし、削除ボタンを押した際にlink_to
メソッドで確認ダイアログを出したい場合、そのままだとDELETEではなくGETでリクエストしてしまいます。
DELETEメソッドとしてリクエストしたい場合(実体はPOST)、Ruby on Rails 6 ではrails-ujsを手動で追加してあげる必要があります。
rails-ujsについては下記の記事がとても参考になるのでぜひご覧ください。
...
//= require rails-ujs ←追加
//= require_tree .
これでエンジン以下でアセットパイプラインが使えるようになりました。
以上です。
このエントリでは、Ruby on Rails 6のエンジンでアセットパイプラインを使うための設定を説明しました。
コメントを送る
コメントはブログオーナーのみ閲覧できます