嗯,我实际上并不想制作日历,但我需要查看一年中的每一天,我猜这有点相同。说我有一个你看到的视图,例如页面顶部的“7月1日”,您可以链接到前一天和后一天。在这下面有一个列表 - 在我的例子中 - 房间,它们有不同的状态 - 可用或保留。
我怎样才能使用Sinatra和Datamapper制作这样的东西?我把它放在网址中还是我有什么可能性?
get '/rooms/:date' do
"List of rooms for " + params[:date]
end
所以回顾一下。我正在尝试创建一个日历,每天你都会得到一个状态列表,其中包含可用状态或为一年中的每一天保留的状态 - 但我不知道从哪里开始。
答案 0 :(得分:3)
我从数据库设计开始。你的中心表是什么?它们如何整合时态数据?假设您有rooms
的列表。然后,您必须拥有另一个表格(例如room_reservations
),每条记录都有start_date
,end_date
和room_id
。查找特定日期所占房间列表的查询应该是微不足道的。
至于在Sinatra中实现以日期为中心的视图,它可以很简单:
require 'rubygems'
require 'sinatra'
require 'date'
require 'haml'
get '/' do
redirect "/rooms/#{Date.today}"
end
get '/rooms/:date' do |d|
@date = Date.parse d
haml :rooms
end
__END__
@@rooms
%a{:href => "/rooms/#{@date - 1}"}
=@date-1
%span
=@date
%a{:href => "/rooms/#{@date + 1}"}
=@date+1