Reputation: 4190
I have a lot action methods which do not need to create instance variable for rendering the view, because these method will only redirect to other actions from other controllers. I am wondering: is it a good habit to always create instance variable for the sake of following the conventions of Rails, or there is no such thing. My intuition is that local variable reduces memory costs, but the code does not look pretty.
Upvotes: 9
Views: 3058
Reputation: 160191
It's not a convention to create instance variables if they're not being sent to the view.
Instance variables may be used if multiple methods act on them before the view, even if they're not used in the view, but this makes the code much harder to reason about and test in isolation.
If you find yourself using instance variables to hold intermediate calculations you probably need to rethink your flow and/or design.
Upvotes: 12
Reputation: 5914
Mostly we need to use instance variable in following cases,
Why should we use instance variable if our job can be done with a local variable.
Upvotes: 8
Reputation: 434665
The only reason you use instance variables in controllers is get things into the view without having to explicitly pass a pile of state around.
If you don't have any state, then you don't have any instance variables so there's no reason to use them.
Upvotes: 5