一個簡單的「front_page」屬性就足夠了,或者像你提到的另一個模型,使用has_one關係也可以。
使用另一種模式可以讓您保留一些更多的信息,比如它應該保留在首頁(過期日期?)多長時間,還是多少次(假設聚會可以使用兩次)。這真的取決於您的系統的其他要求。
你也可以通過Singleton模式的簡單實現逃脫。有上做出一個ActiveRecord對象一個Singleton的Rails的維基的簡短描述(見下文):http://wiki.rubyonrails.org/rails/pages/TipsAndTricks
製作一個單獨的ActiveRecord對象
如果你只有一個 條目的表,有用用於跟蹤對一個數據庫數目 序列的無 序列,可以使用包含在紅寶石單身 模塊像這樣:
require 'singleton'
class Master < ActiveRecord::Base
include Singleton
def initialize(args=nil) super(args) if record = Master.find(:first)
self.attributes = record.attributes end end def next_tracking_number increment!
(:current_tracking_number) current_tracking_number end def
self.next_tracking_number instance.next_tracking_number
end
end
更新:
這是一個非常差的代碼示例(被複制並從軌道維基,其具有無格式粘貼)。我強烈推薦[Ruby Design Patterns]一書,它詳細解釋了許多GoF設計模式(同時使它們適用於Ruby應用程序)。但是Google應該會返回一些在Ruby中使用Singleton模式的好資源。 2
我總是在數據庫中執行我的域規則(例如派對必須有位置和日期),但感覺應用程序特定的邏輯可以愉快地生活在模型中。 未來,他們可能會推動多於一方或向不同用戶推廣不同方。業務規則=我的模型。 – RichH 2008-12-03 20:43:22