I used this gem in my application, but I’m not sure the difference between the different implementation options for the gem:
- form_for
- form_tag with block
- form_tag without block
Can anyone clarify? I understand that form_for is used when you wish to interact with a model, but what about the other two?
The differences are subtle, but important.
form_foris a more advanced tool that yields an object you use to generate your form elements:The
form_tagmethod is much more primitive and just emits a tag. If you want to put things inside of the<form>tag that’s emitted, you put things inside the block:Note that the
form_formethod handles grabbing values from your model, and will at least try to route the form to the appropriate action. Withform_tagyou are responsible for everything as it makes no assumptions about what you’re doing.