Достаточно простого атрибута "front_page" или другой модели, как вы упомянули, с использованием отношения has_one также будет хорошо.
Использование другой модели позволит вам сохранить некоторую дополнительную информацию, например, как долго она должна оставаться на первой странице (срок действия?) Или сколько раз она была показана (при условии, что вечеринка может быть представлена дважды). Это действительно зависит от других требований к вашей системе.
Вы также можете обойтись простой реализацией шаблона Singleton. В Rails Wiki есть краткое описание создания объекта ActiveRecord в виде Singleton (см. Ниже): http://wiki.rubyonrails.org/rails/pages/TipsAndTricks
Создание одиночного объекта ActiveRecord
Если у вас есть стол только с одним
запись, полезная для отслеживания
числовая последовательность для баз данных без
последовательности, вы можете использовать синглтон
Модуль, включенный в ruby, выглядит так:
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
Обновление:
Это очень плохой пример кода (был скопирован и вставлен из Rails Wiki, у которого не было форматирования). Я очень рекомендую книгу [Шаблоны проектирования Ruby], которая более подробно рассматривает многие шаблоны проектирования GoF (при этом делая их применимыми к приложениям Ruby). Но Google должен вернуть вам хорошие ресурсы для использования шаблона Singleton в Ruby. 2