1
我正在使用ActiveSupport :: Concern,並且我知道有幾種方法可以將這些內容組織到/ app/model /關注文件夾中,以表示一般性問題,但如果我想要綁定關注/具體型號我也看到了一些辦法,並希望看到一些利弊Rails 3 - 關注模塊或類
class Alert < ActiveRecord::Base
include Shareable
關注在/ app /模型警報文件夾
class Alert
module Shareable
extends ActiveSupport::Concern
或
module Alert::Shareable
extends ActiveSupport::Concern
或
module Alert
module Shareable
extends ActiveSupport::Concern
不能確定是否有這樣做一個最好的辦法,或者我應該只使用模塊或類模塊。我知道這是微不足道的,他們都似乎工作,但在組織上不知道是否有最好的方法。謝謝!
奧斯汀謝謝你,我已經得到了一個地步,我看到有三個使用,並不總是如100%,有一種方法。!這是一個瘋狂的使用方式,你已經爲我完美地清理了它,現在我正在做一個大規模的重構,我真的很喜歡理解事物的來龍去脈。再次感謝您的幫助! – bokor 2012-03-29 15:37:07
沒問題。只要將類和模塊都視爲常量,並根據語義上的含義將它們嵌套在一起即可。類可以在模塊下,反之亦然。如果最終它可以共享其他事物是有意義的,那麼將它移動到命名空間的頂部。意思是,不要將它嵌入Alert中。乾杯。 – Austin 2012-03-29 20:40:31
同意,我已經用第二種方式比較簡單了,即模塊Alert :: Shareable。如果您使用第一個類,即類模塊,那麼您會遇到由多個Alert定義混淆工具的地方。例如,Annotate gem會給出超類不匹配錯誤,並且不會註釋Alert模型。我在rails dev控制檯中也遇到了一些問題。也就是說,這兩種風格在正在運行的Rails應用中都能正常工作。 – Alric 2012-11-07 23:53:56