由於某些歷史原因,在Rails項目中,Tiger
和Elephant
中的一段代碼是相同的。Ruby'返回'從另一種方法的方法?
我不喜歡重複,但如果我在AnimalController
類中創建一個新的方法和移動這些代碼了進去,我不能return
來自新方法walk
或running
方法。
我認爲從另一種方法返回可能不是一個好的做法,但我真的很討厭重複,有人可以幫助我重構嗎?
class AnimalController
# I want create a new method here
#def all_in
#end
end
class TigerController < AnimalController
def running # This is an Action
some_different_codes...
if arm.blank?
render_not_found
return # <- how can I return `running` from the new method?
end
if lag.nil?
invalid_id
return # <-
end
some_different_codes...
end
end
class ElephantController < AnimalController
def walk # This is an Action
some_different_codes...
if arm.blank?
render_not_found
return
end
if lag.nil?
invalid_id
return
end
some_different_codes...
end
end