1
我在我的模型中使用了這種方法(超過50行),我寧願不必滾動那麼多,也不會失去光標,因爲它佔用了太多空間。我想知道是否可以將它放在單獨的文件中,而不是將它包含在模型中。rails:在模型中收起長方法
謝謝!
我在我的模型中使用了這種方法(超過50行),我寧願不必滾動那麼多,也不會失去光標,因爲它佔用了太多空間。我想知道是否可以將它放在單獨的文件中,而不是將它包含在模型中。rails:在模型中收起長方法
謝謝!
你可以把它放到一個模塊中,並將它包含到模型類中。例如:
app/models/my_long_method.rb
module MyLongMethod
def my_long_method
....
end
end
app/models/my_class.rb
class MyClass < ActiveRecord::Base
include MyLongMethod
end
如果你的方法真的是那麼長,雖然你可能要考慮將它分解成更小的部分作爲模塊太方法。
module MyLongMethod
def my_long_method
first_part
second_part
end
private
def first_part
...
end
def second_part
...
end
end
很好的答案。最後部分的相關鏈接:http://www.refactoring.com/catalog/extractMethod.html – troelskn 2010-09-15 08:24:03
感謝Shadwell和Troeskn。最後一個問題是要清除一件事情:模塊.rb文件必須與包含它的模型位於相同的目錄中。 – 2010-09-15 09:00:23
不,它不需要。它只需要在加載路徑中可用。如果你把它放在一個子目錄中,你需要把這個子目錄放在加載路徑上或者使用一個命名空間。例如。 '模塊SubDir :: MyLongMethod'。 – Shadwell 2010-09-15 09:07:27