2

カレンダーに基づいたアプリケーションを構築しています (カレンダーに期待される基本機能を備えています)。

カレンダーはアプリケーションの基本的な部分を占めるため、gem に頼らずに自分でカレンダーを作成します。

どのルートに行くべきかわかりません: 一意のレコード (イベントは day_id で参照できます) で毎日を表す日モデルを持つか、Date クラスに基づいてカレンダーを「オンザフライ」でレンダリングします (イベントはその後日付を参照してください)。

要するに、カレンダーをレンダリングするのに最も効率的なモデル設計はどれですか?

4

2 に答える 2

2

モデルを持つ必要はまったくありません。以下のコードはそのトリックを行います。

https://gist.github.com/RichIsOnRails/5535564からコードを取得し、ヘルパーにドロップして、そのように使用します (以下のハムルなので、自分のニーズに合わせて調整してください)。カレンダーですが、その必要はありません。

= calendar @date do |date|
  .text-left=date.day
  - if @events_by_date[date]
    - @events_by_date[date].each do |event|
      .event=event.title

これについては、近いうちに私のウェブサイトで詳しく説明する記事を作成する予定です。幸運を!

于 2013-05-07T19:54:18.483 に答える
0

モデル化したい特定の日付がない限り、各イベントに日付フィールドを持つイベント モデルだけでよい場合があります。このアプローチはより簡単であり、好ましいと思います。日付の数は事実上無限であるため、このアプローチの大きな利点の 1 つは、データベースに日付の有限サブセットを保持することによる論理的な矛盾をすべて管理する必要がないことです。

日モデルの必要性が見つかった場合でも、モデルをデータベースに関連付けずにこれを行うことができるため、考えられるすべての日付のレコードをデータベースに保持する必要がなくなります。これは、ある日が就業日かどうかを示すメソッドが必要な場合や、日のコレクションを検索する場合に役立ちます。背後にデータベース テーブルを必要としないモデルを作成する方法の詳細については、次のスタック オーバーフローの質問を参照してください: Rails 3.1 のテーブルレス モデル

于 2013-05-07T19:53:06.267 に答える