對不起標題的措辭尷尬 - 不太清楚的所有權是最好的方法,但這裏是我所看到的援助:Rails的最佳實踐爲用戶配置的全局屬性「默認值」
在一個Rails應用程序,假設我們有一個Product
的模型,並且該產品的一個屬性是Price
。
在我的應用的管理員端,我希望能夠設置一個「默認」價格,如果有任何新的Product
創建的未被分配Price
,可以引用該默認價格。如果Product
確實的值爲Price
,那麼它將被使用。
這當然是一個例子 - 我問這個問題是因爲我想象這是一種常見的模式。這可以應用於任何可能具有用戶可配置全局默認值或資源特定值的資源。
在純Ruby,這將是解決了,我想,有一類變量,所以我能夠在Product
類中定義@@default_price
,並能夠參考Product.default_price
如果實例化對象的值不存在。
我在這裏的研究指向了rails-settings-cached gem,它允許類似MyApp.default_price
這樣的東西,但我想知道是否有更優雅的(非插件)方式在基礎Rails框架內完成此操作。
注意我想在代碼中設置此結構,但我希望能夠通過我的應用程序定義實際值(即配置文件不是我正在尋找的解決方案)。
有人能夠用Rails的方式來啓發我嗎?
這太好了 - 謝謝你Wolfram。我想我的本能並沒有離我們的本能還有很遠的距離來傾向於類變量:)一個問題 - 似乎讓Price成爲自己的類可能會增加一層複雜性。有沒有辦法在沒有這樣做的情況下實現這一點(即將Price作爲產品模型的簡單屬性)?再次感謝。 – nlh 2012-01-30 06:15:25