Ruby on rails 我希望能够在rails应用程序中在日历上标记开始日期和结束日期之间的日期

Ruby on rails 我希望能够在rails应用程序中在日历上标记开始日期和结束日期之间的日期,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,问题是我有一个rails应用程序,它使用日历助手在我的日历上绘制leave\u start和leave\u end。我想能够在两者之间标注日期我尝试了一些方法,但到目前为止运气不佳。然而,我还是能够在“开始”和“结束”之间标注日期,但是,到目前为止,我无法在两者之间标注日期。非常感谢您的帮助 这是我到目前为止试过的 这是我的入口控制器 class EntryController < ApplicationController def index entry_by_start_da

问题是我有一个rails应用程序,它使用日历助手在我的日历上绘制leave\u start和leave\u end。我想能够在两者之间标注日期我尝试了一些方法,但到目前为止运气不佳。然而,我还是能够在“开始”和“结束”之间标注日期,但是,到目前为止,我无法在两者之间标注日期。非常感谢您的帮助

这是我到目前为止试过的

这是我的入口控制器

class EntryController < ApplicationController


def index
   entry_by_start_date = Entry.where("emp_id = ?", 'BILL').group_by {|i| i.leave_start.to_date
   entry_by_end_date = Entry.where("emp_id = ?", 'BILL').group_by {|i| i.leave_end.to_date
   @entry_by_date = entry_by_start_date.merge(entry_by_end_date) {|key, oldval, newval| newval }

   ####^ this works but will only plot leave_start and leave_end on my calendar.

   # this is how I tried to plot all the dates between 
   ## leave_start and leave_end to be plotted on my calendar as well

   e_by_s = Entry.where("emp_id = ?", 'BILL').pluck(:leave_start)
   e_by_e = Entry.where("emp_id = ?", 'BILL').pluck(:leave_end)
   r_j = e_by_s.to_s
   r_g = e_by_e.to_s
   p_g = r_j.to_date
   t_g = r_g.to_date
   days_between = p_g.upto(t_g) { |date| puts date }
   @entry_by_all_dates = days_between.merge(days_between) {|key, oldval, newval| newval }
   @date = params[:date] ? Date.parse(params[:date]) : Date.today
   respond_to do |format|
     format.html # index.html.haml
     format.json { render :json => @entry }
   end
 end
在我看来

 #entry
   %h2#month
     = link_to "<", date: @date.prev_month
     = @date.strftime("%B %Y")
     = link_to ">", date: @date.next_month
   = calendar @date do |date|
      = date.day
      - if @entry_by_date[date]
        %ul
          - @entry_by_date[date].each do |entry|
            %li
              %span.u= entry.emp_id
            %ul
              %span.u Type --
              %span.u= entry.indirect_id
            %ul
              %span.u= entry.leave_start.strftime('%m/%d')
              %span.u --
              %span.u= entry.leave_end.strftime('%m/%d')
            %ul
              %span.u Shift --
              %span.u= entry.am_pm
          - @entry_by_all_dates[date].each do |t|
            %li
              %span.u= t.emp_id
            %ul
              %span.u= t.leave_start.strftime('%m/%d')
              %span.u --
              %span.u= t.leave_end.strftime('%m/%d')
我附上了我日历的屏幕截图,它显示了开始日期和结束日期,我希望这两者之间的日期也能显示出来

require 'date'

start_date  = Date.parse('2015-05-25')
end_date    = Date.parse('2015-05-29')
date_range  = start_date..end_date
(date_range).map(&:to_s)

这将输出一个介于(开始日期..结束日期)之间的日期范围数组,如下所示

例如:

["2015-05-25", "2015-05-26", "2015-05-27", "2015-05-28", "2015-05-29"]

这有助于获取我想要的日期,但我的视图中出现此错误…无法将日期转换为整数为什么要将日期转换为整数?这是我尝试回答时遇到的错误@Akshay BoradeTry此
您的\u日期。strftime('%Q')。您的视图可能需要以毫秒为单位的日期<代码>日期.strftime(“%s”)。到_i
秒。我用您的建议更新了我的问题,以显示我收到的错误@阿克什硼化物
 #entry
   %h2#month
     = link_to "<", date: @date.prev_month
     = @date.strftime("%B %Y")
     = link_to ">", date: @date.next_month
   = calendar @date do |date|
      = date.day
      - if @entry_by_date[date]
        %ul
          - @entry_by_date[date].each do |entry|
            %li
              %span.u= entry.emp_id
            %ul
              %span.u Type --
              %span.u= entry.indirect_id
            %ul
              %span.u= entry.leave_start.strftime('%m/%d')
              %span.u --
              %span.u= entry.leave_end.strftime('%m/%d')
            %ul
              %span.u Shift --
              %span.u= entry.am_pm
          - @entry_by_all_dates[date].each do |t|
            %li
              %span.u= t.emp_id
            %ul
              %span.u= t.leave_start.strftime('%m/%d')
              %span.u --
              %span.u= t.leave_end.strftime('%m/%d')
     ActionView::Template::Error (can't convert Date into Integer):
require 'date'

start_date  = Date.parse('2015-05-25')
end_date    = Date.parse('2015-05-29')
date_range  = start_date..end_date
(date_range).map(&:to_s)
["2015-05-25", "2015-05-26", "2015-05-27", "2015-05-28", "2015-05-29"]