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