I would like to have a form in which some of the fields are linked to model and some fields are not. When I use form_for tag it binds to a particular model and I cannot create form fields that aren’t correspond to one of the column name of the table (Model). Hence what I think is I should use form_tag instead of form_for so that it contains whatever the form fields it want but one thing I can’t find by googling is how can I connect specific fields to a model leaving other fields free of model?
In other words, If I have 5 text_fields in a form how can I link only 3 text_fields to a model and leave other 2 fields free?
Consider binding your form to an ActiveModel not an ActiveRecord class. In your ActiveModel, you can add in the extra fields that you don’t want/have in your ActiveRecord class. Using ActiveModel will also let you follow the same idioms in ActiveRecord, such as validation.
For the model fields populate the field with my_model.the_attribute
and for the others just use the value. Then extract the data from
params in the controller.
Or use ActiveModel as suggested by Henry, which is a more OO solution.
I would like to have a form in which some of the fields are linked to model and some fields are not. When I use form_for tag it binds to a particular model and I cannot create form fields that aren't correspond to one of the column name of the table (Model). Hence what I think is I should use form_tag instead of form_for so that it contains whatever the form fields it want but one thing I can't find by googling is how can I connect specific fields to a model leaving other fields free of model?
You can still use form_for, but use text_field_tag rather than f.text_field for the non model form inputs.