我有一個城市列表,每個城市都有一個「活動」列(布爾值)。 當我將一個城市設置爲活動狀態時,我希望所有其他城市都不活動。當一個設置爲活動狀態時,將所有條目設置爲不活動
完成此操作的最佳方法是什麼?
我在想另一個存儲活動城市的表。我需要爲此使用單身嗎?如果是這樣,我如何鏈接這兩個表?
我很想得到一些關於如何解決我的問題的例子。謝謝! :-)
編輯: 現在我有一個模型:市
一個城市可以有一個名稱,郵政編碼,它可以爲有效或無效 - 只是三列。
我開始填寫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