对不起标题的措辞尴尬 - 不太清楚的所有权是最好的方法,但这里是我所看到的援助: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