簡體   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