我正在使用calendar gem在我的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 %>
...
正如你所看到的,它不是很合适。有没有办法为此创建“类方法”或“范围”,即使它不是一个对象本身?显然,上面没有显示先前或未来的月份,这意味着它必须更加冗长,所以我一直在寻找更优雅的解决方案。但是,我会把方法放在哪里?
提前感谢您的帮助!
答案 0 :(得分:0)
我最终创建了自己的方法来生成比gem更好的日历。对于那些在寻找答案的问题上磕磕绊绊的人,我建议将第三方gem放入模型类(如果可能的话),然后只是这样定义范围。但就我的目的而言,我只需要一个非常基本的日历函数,所以我创建了一些基本上使用一些内置Rails函数循环几天的方法。