1
所以我有一個控制器從應用程序控制器的子類。它定義了各種受保護的方法,以及應用程序控制器。現在,如果應用程序控制器已經定義了這些方法,我不希望它們被它的子類覆蓋。我一直在努力的事情在這個控制器,如:軌道控制器,只覆蓋受保護的方法,如果他們沒有定義
class SomeController < ApplicationController
protected
unless instance_methods.include? "some_method"
def some_method
end
end
但是,使用Rails的記錄器,我仍然可以看到some_method被調用。
我不明白你的問題。你知道你的'ApplicationController'中有哪些方法,對吧?所以不要在你的子類中定義它們。或者我錯過了什麼? – Mischa
詳細說明,這個SomeController是Rails引擎的一部分,我們也在某些情況下將它作爲獨立應用程序使用。所以如果它是獨立的,它從actioncontroller繼承,並定義方法。如果它是一個引擎,則它從父級的應用程序控制器繼承。由於父級的應用程序方法對於其目的是正確的,因此我不需要覆蓋引擎中的那些方法,因爲它會導致我們遇到一些問題:) – agmcleod