[英]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.