在Rails中,我使用Railscasts#213中的代码进行修改以构建日历。我用它来显示每天Event
小时。
帮助代码为今天设置background-color
,因此您可以轻松查看今天是哪一天。
我让它工作,以便您可以点击一天,表格会显示当天Events
的详细记录。
这是用户点击日历中某一天时执行的代码:
<div><%= link_to 'View' , events_index7_path(:date_selected => date), :class => 'btn btn-mini'%></div>
将所选日期放入网址,如下所示:
.../events/index7?date_selected=2013-11-22
视图测试day_selected如下:
<% current_user.events.where(:event_date => @date_selected).each do |event| %>
我想为date_selected
我正在尝试将dayselect
类添加到帮助程序中:
def day_classes(day)
classes = []
classes << "today" if day == Date.today
classes << "dayselect" if day == @date_selected
classes << "notmonth" if day.month != date.month
classes.empty? ? nil : classes.join(" ")
end
但是,它无法识别@date_selected
我也试过这个:
classes << "dayselect" if day == params[:date_selected]
UPDATE1:
这是日历的图片,因此您可以更好地了解我正在做的事情:
UPDATE2
查看日历代码:
<%= calendar @date do |date| %>
<%= date.day %>
<% hours = current_user.events.where(:event_date => date).sum(:hours) %>
<% if hours != 0 %>
<div class="sumhours"><%= hours %></div>
<% else %>
<div> - </div>
<% end %>
<div><%= link_to 'View' , events_index7_path(:date_selected => date), :class => 'btn btn-mini'%></div>
UPDATE3 如果我停止执行辅助代码来设置类,我会发现:
Request parameters
{"date_selected"=>"2013-11-21", "controller"=>"events", "action"=>"index7"}
如何访问date_selected参数?
UPDATE4
这将突出显示从字符串转换的特定日期:
classes << "dayselect" if day == DateTime.strptime("2013-11-18", "%Y-%m-%d")
但是,如果我用过这个:
classes << "dayselect" if day == DateTime.strptime(params[:date_selected], "%Y-%m-%d")
我明白了:
undefined local variable or method `params' for #<CalendarHelper
答案 0 :(得分:0)
我无法弄清楚如何使用Rails,所以我使用了jQuery。
使用pure.js获取网址。
这是jQuery(Coffeescript):
url = $.url().param("date_selected")
$("#monthcalendar td").each ->
$(this).addClass "dayselect" if $(this).attr('class') == url