将非db数据映射到rails模型

时间:2009-12-09 16:43:01

标签: ruby-on-rails ruby

我有一个帐户模型的应用。每个帐户属于一项运动,我通常将其作为运动模型和数据库。但由于这不是真正会改变的东西而且不是由最终用户管理的,我认为将它作为整数列放在Account模型中并使用类变量映射到散列可能更好。

但是,我需要每项运动都有很多球员位置(每项运动都是特定的)。所以我想也许我可以这样做:

@@player_positions = {:rugby => [position_1, ..., ...]}

对于像这样的静态数据这是一个好习惯还是我应该坚持把它放在DB中,因为它是关系型的?

我也想过也许我可以使用yaml文件,但不知道如何设置它。

2 个答案:

答案 0 :(得分:0)

我会坚持使用数据库,因为你将多项内容与这项运动联系在一起(除了账号之外的位置)。如果你想使用belongs_to,它可以让生活更轻松,它可以让你轻松地使用SQL进行计数等(例如,你可以按运动对账户进行分组,并按运动计算账户数)。

在某些情况下,我使用了枚举的常量列表,而不是表格。例如,我有一个简单的应用程序,其用户类型为ADMIN,EDITOR和READER。我没有将它放在DB中的角色表中,而是在User类上创建了这些常量,并将一个字符串列添加到了用户表中以供角色使用。

答案 1 :(得分:0)

您不必使用数据库。 http://railscasts.com/episodes/189-embedded-association可能会给你一些想法。