How do CRUD and REST work for a wizard-style application

I did this once using javascript and partials. When step 1 was finished and someone pressed next I just hid the step 1 DIV and showed step 2. That way when all the steps are done and Finish is pressed all the form data is submitted at once although it’s DIV container is hidden.

There’s a really neat side-effect of this approach… If you placed the “go to step 2” button on the page using JS, then users without JS would still be able to use the wizard… though it would appear as one big long form.

I’ve used that approach many times.

Sure. Although like I used it it would need some altering to work without JS. I used partials alongside it. For example in this registration page I used you entered requested username and email and before hiding the DIV it checked if that username was taken and only displayed the next step after that validation. Using this method also allowed me to minimize the amount of actions I created in the controller as I prefer creating as few of those as humanly possible. Using this method I got away with creating just one “create” controller that sensed between PUT and POST and did some in-form validation using AJAX and a partial. It’s a little hassle to get going in the beginning but the code looked so much better.