与Sinatra制作日历

时间:2010-07-11 16:54:36

标签: ruby calendar sinatra datamapper

嗯,我实际上并不想制作日历,但我需要查看一年中的每一天,我猜这有点相同。说我有一个你看到的视图,例如页面顶部的“7月1日”,您可以链接到前一天和后一天。在这下面有一个列表 - 在我的例子中 - 房间,它们有不同的状态 - 可用或保留。

我怎样才能使用Sinatra和Datamapper制作这样的东西?我把它放在网址中还是我有什么可能性?

get '/rooms/:date' do
  "List of rooms for " + params[:date]
end

所以回顾一下。我正在尝试创建一个日历,每天你都会得到一个状态列表,其中包含可用状态或为一年中的每一天保留的状态 - 但我不知道从哪里开始。

1 个答案:

答案 0 :(得分:3)

我从数据库设计开始。你的中心表是什么?它们如何整合时态数据?假设您有rooms的列表。然后,您必须拥有另一个表格(例如room_reservations),每条记录都有start_dateend_dateroom_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