0
我不鼓勵使用stylesheet_link_tag
寶石 - 我想顯示在控制檯的警告每次stylesheet_link_tag
被調用,無需重新打開或複製此方法的邏輯(我關心的是不同版本的Rails將有不同的實現) 。在調用方法時顯示警告?
是否有紅寶石的方式掛接到現有的方法(無需重新打開它),或者一個辦法可以檢測到該名稱的方法被調用,所以我就可以繼續顯示我的自定義警告?
我不鼓勵使用stylesheet_link_tag
寶石 - 我想顯示在控制檯的警告每次stylesheet_link_tag
被調用,無需重新打開或複製此方法的邏輯(我關心的是不同版本的Rails將有不同的實現) 。在調用方法時顯示警告?
是否有紅寶石的方式掛接到現有的方法(無需重新打開它),或者一個辦法可以檢測到該名稱的方法被調用,所以我就可以繼續顯示我的自定義警告?
超級將無法正常工作。沒有模塊的超類。你需要一個alias
將這個某處application_helper.rb
,所有定義之前:
module ::ActionView::Helpers::AssetTagHelper
alias stylesheet_link_tag_original stylesheet_link_tag
def stylesheet_link_tag(*params)
logger.warn 'Stylesheet link tag called!'
stylesheet_link_tag_original(*params)
end
end
@ lfender6445,是沒有任何理由爲Rails'alias_method'?在這種情況下,純Ruby的「別名」似乎完成了100%的同樣的工作。 – 2015-04-02 22:41:05
你知道它有趣,起初我並不認爲它是有效的語法,因爲別名不用逗號來調用。我添加了逗號,我的編輯開始抱怨!事實證明這完全是故意的我要加以更新的答案 – lfender6445 2015-04-03 00:45:10
@ lfender6445,它也並不需要':'。 'alias'是一個普通的Ruby關鍵字,它需要兩個方法名稱。我在提交答案前檢查了代碼。 – 2015-04-03 00:54:41