How to add a Stimulus controller

1
bin/rails generate stimulus foo

I don’t always rely on Rails generator, I parcularly enjoy to write Rails migration file by myself.

However I advise to stick with the generator for Stimulus, I find it safer, to avoid spelling mistakes - remember that Rails relies on naming conventions to wire things together.

Now the Stimulus controller is generated as follow inside the app/javascript/controllers/index.js file :

1
2
3
4
5
6
7
8
9
// app/javascript/controllers/index.js

import { application } from "./application"

import HelloController from "./hello_controller.js"
application.register("hello", HelloController)

import FooController from "./foo_controller.js"
application.register("foo", FooController)

How to remove a Stimulus controller

1
bin/rails destroy stimulus foo

This command may fail, so check that lines were correctly removed inside app/javascript/controllers/index.js.

If not, then manually remove the two lines, and run bin/rails stimulus:manifest:update.