我有一个城市列表,每个城市都有一个“活动”列(布尔值)。 当我将一个城市设置为活动状态时,我希望所有其他城市都不活动。当一个设置为活动状态时,将所有条目设置为不活动
完成此操作的最佳方法是什么?
我在想另一个存储活动城市的表。我需要为此使用单身吗?如果是这样,我如何链接这两个表?
我很想得到一些关于如何解决我的问题的例子。谢谢! :-)
编辑: 现在我有一个模型:市
一个城市可以有一个名称,邮政编码,它可以为有效或无效 - 只是三列。
我开始填写5个城市的数据库。
当我将City#1设为活动状态时,所有其他城市都应为非活动状态。
当我将City#2设置为活动状态时,所有其他城市都应为非活动状态。
为了实现这一点,我看到两种不同的方式:
1)设置一个过滤器,当我保存城市时更新所有其他条目。
2)将激活/非激活状态存储在第二个表中。
选项2)看起来像一个更清洁的方式,只有一个条目的简单表。但是在这种情况下模型是什么样的?
我真的很感谢你的回复,伙计们。 :-) 你是否知道这些日子当你感到愚蠢?我有一个这样的日子。 :-(
选项2):
我有什么是'城市'和'活动城市'。
市有:
- 标题:字符串
- 邮编:整数
ActiveCity具有:
- 活性:布尔
- city_id =>的引用:城市
市has_one :active_city
ActiveCity我的的routes.rb有:
resources :active_cities
resources :cities
以下工作:
c = City.find(1)
ActiveCity.create(:city_id => c, :active => true)
当我有好几个城市,我也可以这样做:
c2 = City.find(2)
ActiveCity.create(:city_id => c2, :active => true)
这意味着我有两个活跃的城市,现在就是我想要的。
有什么需要有一个活跃的城市在任何时间?
这是一个单用户应用程序 - 现在只有一个表(城市)。 我需要的是我可以设置一个城市进入活动状态的城市列表。然后cronjob检查列表并为活动城市执行特定操作。 这不是什么奇特的事情,所以我认为第二张桌子只是为了保存活跃的城市才是最佳选择。 – dmnkhhn 2010-12-06 14:27:57
是的,我也这么认为。这将会像用户将有一个属性city_id。 `城市has_many:用户`和':用户belongs_to城市`。一次活跃的城市。 – Chirantan 2010-12-06 14:39:56
我更新了我最初的问题。 :-) – dmnkhhn 2010-12-06 15:17:38