2009-02-03 66 views
4

我有一個rails應用程序運行得相當好,但我自己這樣做的事實意味着一些可憐的草皮最終會看到這個並說:「你到底在想什麼?你爲什麼把這個放在這裏?!?!」Rails:模型依賴類位置的最佳實踐?

那個可憐的可憐的靈魂在哪裏看到一系列除了一個單獨的模型課程之外都沒有使用的課程?很顯然,我可以將它與TheModel類一起放入the_model.rb中,但是這可能會擴展到超出計劃的兩個類的範圍之外。

我曾經考慮過lib,但它並不需要混淆每個人對世界的看法。 ...

謝謝。

我的前任感謝你。

+0

你是不是指你的繼任者謝謝我? – 2009-02-03 23:23:14

回答

0

通常:在將類名轉換爲文件系統位置時,請遵循Rails命名約定。 (即:保持類FooHelper::Barfoo_helper/bar.rb

您可以設置例外,對於那些只使用一次,讓他們在同一個文件作爲模型的小助手類,但這些應該是例外。 (但反過來也是如此,不要創建單行數千個單行文件)

使用模塊和類名稱空間是您的優勢。如果你有一個只能使用(並依賴於)模型中的一個輔助類,把它們放到模型類的命名空間:

class TheModel::HelperClass 
end 

在文件系統中的位置將是app/models/the_model/helper_class.rb

而且東西是不依賴於你的模型可能仍然命名空間

module Bar 
    class Foo 
    end 
end 

住在bar/foo.rb,當然

你可能不應該害怕把東西並不是模特到lib - 這就是這個目錄是

我說concerns,雖然有用,是不是真的走,因爲這是正確的方式一種將單個類拆分爲多個文件的方法,您似乎沒有這樣做。