私はカレンダーの宝石Events
を使用して、私のクラスで基本的なカレンダーを生成しています。
私のアプリケーションヘルパーでは、それを呼び出すためのヘルパーメソッドを作成します。
def calendar
@calendar ||= Cal::MonthlyCalendar.from_params params[:month], start_week_on: :sunday
end
カレンダーは、デフォルトの方法で日と週をループして月ごとのカレンダーを作成しますが、現在の週と次の週のみを表示するカレンダーを作成したいと思います。現在、私はif
ビューの大きなステートメントを介してこれを行っています:
...
<% calendar.weeks.each do |week| %>
<tr>
<% week.each do |day| %>
<% if day.number >= Date.today.beginning_of_week(start_day = :sunday).day && day.date.month == Date.today.month %>
...
ご覧のとおり、それはあまり適切ではありません。オブジェクト自体ではなくても、このための「クラスメソッド」または「スコープ」を作成する方法はありますか?明らかに、上記は前月または将来の月を示していません。つまり、機能するにはさらに冗長にする必要があるため、よりエレガントなソリューションを探していました。しかし、私はその方法をどこに置くでしょうか?
助けてくれてありがとう!