Back to list
bastos

javascript-in-rails

by bastos

Bastos' Claude Code Ruby Plugin Marketplace

0🍴 0📅 Jan 24, 2026

SKILL.md


name: javascript-in-rails description: Guidance for integrating JavaScript in Rails: import maps, jsbundling-rails (Bun/esbuild/Rollup/Webpack), Turbo helpers, request.js, and UJS replacements. Use when the user asks about JavaScript setup, bundlers, or client-side behavior in Rails. version: 1.0.0

JavaScript in Rails

Guide Rails applications through JavaScript setup, bundling choices, and Turbo/UJS replacements using Rails 7+ conventions.

Choose a JavaScript strategy

Import maps (default for Rails 7+)

  • No Node.js or Yarn required.
  • No build step; run bin/rails server.
  • Use for most Hotwire-first apps and smaller JS needs.

JavaScript bundlers

  • Use Bun, esbuild, Rollup, or Webpack.
  • Bundlers integrate via jsbundling-rails.
  • Run bin/dev during development.
  • Node.js + Yarn required for esbuild/Rollup/Webpack.
  • Bun is both runtime and bundler.

Import maps

Install (existing apps):

bundle add importmap-rails
bin/rails importmap:install

Pin packages:

bin/importmap pin react react-dom

Import in app/javascript/application.js:

import React from "react"
import ReactDOM from "react-dom"

Common files:

  • config/importmap.rb
  • app/javascript/application.js

Bundlers

Create a new app with a bundler:

rails new my_app --javascript=bun

Available options:

  • bun
  • esbuild
  • rollup
  • webpack

Turbo and UJS replacements

Use Turbo helpers and data attributes instead of Rails UJS:

Method override:

<%= link_to "Delete", post_path(@post), data: { turbo_method: "delete" } %>

Confirmations:

<%= link_to "Delete", post_path(@post), data: { turbo_confirm: "Are you sure?" } %>

Prefer button_to for non-GET actions when possible.

Ajax and request.js

Non-GET requests require X-CSRF-Token. Rails Request.JS handles this:

import { FetchRequest } from "@rails/request.js"

const request = new FetchRequest("post", "/posts", {
  body: JSON.stringify({ post: { title: "Hello" } })
})

await request.perform()

When to use this skill

  • Choosing between import maps and bundlers
  • Setting up or migrating JavaScript tooling
  • Turbo helpers and UJS replacements
  • request.js and CSRF-safe Ajax

Score

Total Score

65/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon