- ルビー 1.9.2p290
- レール3.1.1
私はこれらのモデルを持っています:
class Recipe < ActiveRecord::Base
belongs_to :festivity
end
class Festivity < ActiveRecord::Base
has_many :recipes
end
「レシピ」テーブルに次のフィールドがあります。
festivity_id
「festivities」テーブルの次の日時フィールド:
starts_at
ends_at
お祭りの日付に基づいてコンテンツを表示するにはどうすればよいですか?
私はこの静的な方法で考え始めました:
class PagesController < ApplicationController
def home
@recipes_by_festivities = Recipe.where(:festivity_id => 4).all(:order => 'RAND()', :limit => 8)
end
end
例: クリスマス期間 (ほぼすべての 12 月) では、festivity_id = 1 のレシピ リストを表示したいと考えています。感謝祭期間では、festivity_id = 4 のレシピのリストだけを表示したいと考えています。
私の言いたいことが分かりますか?そうでない場合はお知らせください。
解決
@current_festivity = Festivity.find(:last, :conditions => ["? between starts_at AND ends_at", Time.utc(0,Time.now.month,Time.now.day,0,0,0)])
@recipes_by_festivities = Recipe.where(:festivity_id => @current_festivity).all(:order => 'RAND()', :limit => 8)