In a rails app I'm building, the home page will have two forms: one to
sign-up for an account, another one to sign-in to an existing account.
Now, if I were to use object form helpers to build these forms, the
controller for the homepage would need to create instances of the relevant
models each time someone visits the homepage.
This concerns me a bit, because a visitor to the home page may or may not
end up using either the sign-up or sign-in forms. For instance, they may
instead click a link that gives a "tour" of the app. If they do so, will
the instance variables created by the controller in anticipation of the
POTENTIAL use of the forms be garbage-collected?
The use of the objects is only for building the view, once the view is
rendered those objects are not used again. Remember when you post a
form it is not the model object that is posted, only the contents of
the fields as strings. Therefore it does not make any difference to
the objects whether the form is posted or not, they will be garbage
collected after the view is created in the same way whether the form
is used or not.
I'm just thinking about efficiency here -- don't want to have a bunch of
extra instance variables taking up space in the runtime memory just for the
sake of the (slight) convenience of using model object forms helpers rather
than plain-vanilla form handlers.
Don't worry about efficiency until it becomes an issue. A long career
in s/w development has shown me that the bottlenecks in an app are
never where you expect them to be so optimising before you know where
the critical parts are is a waste of time. Spend the time instead on
ensuring full test coverage so that if you do need to optimise (which
is unlikely) you can refactor the code without worrying about whether
you have messed something up.