[英]Why doesn't Ruby confuse two instance variables in different methods in the same class?
class Order < ApplicationController
def new
@project = Project.new
end
def show
@project = Project.find(params[:id])
end
end
那么,为什么在同一个类中的两个不同方法中,Ruby / Rails不会与相同的实例变量混淆?
作为Rails控制器,当浏览器请求/new
或/show
时将调用它。 对于每个请求,将创建控制器类的新实例。 因此,将执行new
或show
,但不会两者都执行。
因为创建了该类的新实例来处理每个请求。
[编辑]:如果要使用另一个名为Order#do_stuff_with_project
方法,则可以从Order#show
和Order#new
调用它,并且可以访问@project
变量。 它们是简单的方法,没有什么神奇的。
或者您可以这样说:按照惯例,两个方法永远不要在同一控制器实例上调用。 这是时间耦合的一个例子。
每当刷新页面时,都会再次向该控制器发送一个请求,该请求将被初始化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.