I’m new to Rails and having a hard time figuring out how to create a form that submits over Ajax without having a corresponding model object.
My use case is a simple form that collects an email address and sends it an email; there’s nothing to be persisted, so no model.
In cases where I do have a model, I’ve had success with form_for(@model, remote: true). I can’t seem to find the right helper for the case where there is no model. I tried form_tag(named_path, remote: true) and that works, but does not use Ajax.
Pointers to an example with an example with a proper controller, .html.erb and routes.rb would be really appreciated.
Here’s how I solved it. The key was using
form_tagand specifying a hash with an argument that properly matched my route. For my business logic, I need to pass in an “id” param, which is used in the controller logic.routes.rb:I also had to supply a sendemail.js.erb template which updates the form after submission.