在rails中,在action方法中使用局部变量还是实例变量重要吗
我有很多不需要创建实例变量来渲染视图的操作方法,因为这些方法只会重定向到其他控制器的其他操作。我想知道:为了遵循 Rails 的约定而总是创建实例变量是一个好习惯吗?或者根本就没有这样的事情。我的直觉是局部变量减少了内存成本,但代码看起来不太漂亮。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果实例变量没有发送到视图,则创建实例变量不是惯例。
如果多个方法在视图之前对实例变量进行操作,则可以使用实例变量,即使它们没有在视图中使用,但这会使代码更难推理并进行隔离测试。
如果您发现自己使用实例变量来保存中间计算,您可能需要重新考虑您的流程和/或设计。
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.
大多数情况下,我们需要在以下情况下使用实例变量:
如果我们的工作可以用局部变量来完成,为什么我们还要使用实例变量呢?
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.
在控制器中使用实例变量的唯一原因是将事物放入视图中,而不必显式传递一堆状态。
如果您没有任何状态,那么您就没有任何实例变量,因此没有理由使用它们。
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.