0

我正在使用日历宝石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 %>
...

如您所见,这不是很合适。有没有办法为此创建一个“类方法”或“范围”,即使它本身不是一个对象?显然,上面没有显示之前或未来的几个月,这意味着它必须更加冗长才能工作,所以我正在寻找一个更优雅的解决方案。但是,我将把方法放在哪里?

提前感谢您的帮助!

4

1 回答 1

0

我最终创建了自己的方法来生成比 gem 更好的日历。对于那些偶然发现这个问题并寻找答案的人,我建议将第三方 gem 放入模型类(如果可能的话),然后以这种方式定义范围。但就我的目的而言,我只需要一个非常基本的日历功能,所以我只是使用一些内置的 Rails 功能创建了一些基本上循环几天的方法。

于 2012-11-29T03:14:49.650 回答