我是Ruby的新手,並通過一些教程/屏幕錄像工作。我已經到了他們正在討論before_filter
回調的部分,它使用了一些對我來說有點奇怪的語法。我不知道這是否是紅寶石的一個特徵,是否有一些軌道魔法,並且希望有人能夠讓我直接或者指向正確的方向w/r/t手冊從Ruby類中調用方法? (或者這是軌道魔術)
這是一個代碼從截屏視頻片段我看
class MachinesController < ApplicationController
#...
before_filter :login_required, :only => [:report]
#...
def index
#etc...
end
def login_required
#etc...
end
end
在軌的情況下,我的理解是before_filter
是一個回調,這將觸發login_required
方法時report
動作被調用。然而,我不清楚它是在ruby的背景下。在其他語言中,類通常包含大括號內定義的方法,屬性,類變量和常量。
但是,這看起來像是它在類中的一個函數調用,並且一些實驗表明,您可以將代碼放入類定義中,並在程序運行時調用它。它是否正確?如果是這樣,是否有特殊的上下文規則將代碼內聯到類似的類中? (即rails中的before_filter函數是否知道它被調用的是什麼類)如果不是,Rail在這裏做什麼魔術?
國際海事組織你應該選擇莎拉梅的答案作爲你選擇的答案,它提供了最好的和最完整的解釋。 – horseyguy 2010-01-23 00:38:39
莎拉的回答非常好,但這是我沒有問過的問題。我對類中的方法的調用感到困惑,這是你在PHP或Java中無法做到的。我想知道這是否是一些軌道魔法,或者如果Ruby支持這一點,並且如果Ruby支持這一點,那麼在一個類中不同的w/r/t調用代碼是什麼。喬納森回答說,解釋了自我如何改變了身份。 – 2010-01-23 04:00:16
也許這個問題應該編輯一下,我想的是這樣的:「Ruby:從類定義中調用函數」 – 2012-05-23 22:23:45