Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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 on rails 我应该使用多个日期的事件有多个,并且多个事件都属于多个_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 我应该使用多个日期的事件有多个,并且多个事件都属于多个

Ruby on rails 我应该使用多个日期的事件有多个,并且多个事件都属于多个,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.2,用户可以创建多天事件 因此,事件可以有多个日期,包括日期的开始时间和结束时间 因此,事件可能有以下日期: 2013年7月1日上午9:00-下午5:00 2013年7月2日上午10:00至下午6:00 2013年7月7日下午1:00-5:30 因此,事件表将存储事件id、事件名称、事件类型、事件将在何处举行的地址字段等。但是如何为事件建模多个日期?我可以有一个单独的event_dates表,该表中的每个事件都有多行: id事件\日期事件\开始时间事件\结束时间 事件1 2013年7月1日上午9:0

用户可以创建多天事件

因此,事件可以有多个日期,包括日期的开始时间和结束时间

因此,事件可能有以下日期:

2013年7月1日上午9:00-下午5:00 2013年7月2日上午10:00至下午6:00 2013年7月7日下午1:00-5:30

因此,事件表将存储事件id、事件名称、事件类型、事件将在何处举行的地址字段等。但是如何为事件建模多个日期?我可以有一个单独的event_dates表,该表中的每个事件都有多行:

id事件\日期事件\开始时间事件\结束时间 事件1 2013年7月1日上午9:00下午5:00 事件1 2013年7月2日上午10:00下午6:00 事件1 2013年7月7日下午1:00下午5:30

但我也希望查询某一天发生的事件(无论何时),这样用户就可以在他们所在的区域中找到某一天发生的事件(他们可能会在当天访问多个事件)

那么我该如何建模呢?如果一个事件有多个日期,而一个日期有多个事件,我会使用has_和_belient_to_many吗

在视图中,保存事件时,我想我需要将事件数据保存到events表中,并将日期/时间组合保存到另一个表中。但要将日期/时间组合保存到另一个表中,我需要刚刚保存的事件的id。因此,在一种形式中,我有一个依赖项,第一次保存必须成功(保存事件),第二次保存必须继续(使用新事件id保存日期/时间)


提前感谢您的帮助。

我建议您设置
事件
以进行多个
会话
。然后,每个会话都可以指定该会话的日期/时间范围

至于查询某一天,您可以使用join和一些Rails魔术,如下所示:(假设Rails 3.2)

类事件
你参加过很多次会议吗
定义自发布之日(日期)
联接(:会话)。其中(“session.start<?和session.end>?”,date.end\u of_day,date.start\u of_day)
终止

看看闭包树gem(),它允许您使用acts\u as\u树和事件的层次结构。。。
干杯

我想知道如何以一种形式为活动创建会话?表单将有多个JQuery日期选择器字段和相应的自定义时间选择器字段。但是需要先保存事件以填充相应的日期会话event_id values>我还想知道如何查询用户是否搜索日期在某个范围内的事件,例如6月20日到6月23日?如果他们在几天中的特定时间之间查找事件,又该怎么办?@GregLafrance您必须将参数更改为
。where
,以反映这些新的界限。@GregLafrance至于形式-这本身是一个单独的问题。考虑打开一个关于你的具体问题的新问题。
class Event
  has_many :sessions

  def self.on_day(date)
    joins(:sessions).where("session.start < ? AND session.end > ?", date.end_of_day, date.beginning_of_day)
  end