繁体   English   中英

为什么Ruby不会在同一个类的不同方法中混淆两个实例变量?

[英]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时将调用它。 对于每个请求,将创建控制器类的新实例。 因此,将执行newshow ,但不会两者都执行。

因为创建了该类的新实例来处理每个请求。

[编辑]:如果要使用另一个名为Order#do_stuff_with_project方法,则可以从Order#showOrder#new调用它,并且可以访问@project变量。 它们是简单的方法,没有什么神奇的。

或者您可以这样说:按照惯例,两个方法永远不要在同一控制器实例上调用。 这是时间耦合的一个例子。

每当刷新页面时,都会再次向该控制器发送一个请求,该请求将被初始化。

实例方法仅在对象实例中调用

对象的实例是在加载/调用/初始化时表示的,这意味着只能在加载特定对象时使用实例变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM