Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 用西纳特拉制作日历_Ruby_Calendar_Sinatra_Datamapper - Fatal编程技术网

Ruby 用西纳特拉制作日历

Ruby 用西纳特拉制作日历,ruby,calendar,sinatra,datamapper,Ruby,Calendar,Sinatra,Datamapper,其实我不想做日历,但我需要一年中每一天的视图,我想这是一样的。假设我有一个视图,你在页面顶部看到例如“七月一日”,你有前一天和后一天的链接。在这下面是一个列表,在我的例子中,房间有不同的状态——可用或保留 我如何使用Sinatra和Datamapper制作这样的东西?我是否把它放在url中,或者我有什么可能性 get '/rooms/:date' do "List of rooms for " + params[:date] end 总而言之。我正在尝试创建一个日历,在日历中,您每天都可以

其实我不想做日历,但我需要一年中每一天的视图,我想这是一样的。假设我有一个视图,你在页面顶部看到例如“七月一日”,你有前一天和后一天的链接。在这下面是一个列表,在我的例子中,房间有不同的状态——可用或保留

我如何使用Sinatra和Datamapper制作这样的东西?我是否把它放在url中,或者我有什么可能性

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

总而言之。我正在尝试创建一个日历,在日历中,您每天都可以看到一个列表,其中列出了一年中每一天的可用状态或保留状态,但我不知道从哪里开始。

我将从数据库设计开始。你们的中心桌是什么?它们如何合并时态数据?假设您有
房间的列表。然后您必须有另一个表(比如
房间预订
),每个记录都有
开始日期
结束日期
房间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

如果我要做一家汽车旅馆的模特,它会有一个名字,有许多客人和许多部门。每个区域(A、B、C等)都有许多房间(1、2、3等),我猜每个房间都有预订,预订有一个或多个客人。在客人入住汽车旅馆期间,工作人员应该可以将客人转移到另一个房间,因此我不确定开始日期和结束日期是否正确。好吧,这完全取决于你想要构建的应用程序有多复杂,以及你是计划立即开始复杂,还是开始简单,并在迭代过程中使其复杂化(版本等)。无论如何,您首先应该做的是1)设计数据库2)设计界面工作流。Ruby编码和Sinatra路由应该放在最后。我考虑过让它变得非常简单。它可以是一张叫做房间的桌子,属于某个区域。当然,这些房间可以有多个预订,但在给定日期只能预订一个。或者最好将预订链接到多个房间。我想每个预订都有一个开始日期和结束日期,但我仍然希望能够将一个预订链接到开始日期和结束日期之间的几天内的不同房间。当您想将入住者从房间a移动到房间B时,只需将房间预订中的
date\u to
字段更改为当前日期,并从当前日期到原始日期
打开另一个B房间预订。无论如何,这个讨论与最初的问题相去甚远,你可以打开一个关于DB设计的新问题。我实际上想问一下如何为汽车旅馆建模——但我想如果我能绕过这个“日历”问题,我自己也许能想出一些东西。但你说这很琐碎。你能告诉我这有多微不足道吗?