Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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
Join Rails-如何正确使用连接_Join_Ruby On Rails 4 - Fatal编程技术网

Join Rails-如何正确使用连接

Join Rails-如何正确使用连接,join,ruby-on-rails-4,Join,Ruby On Rails 4,我目前有两种型号: class Event < ActiveRecord::Base has_many :event_occurrences, dependent: :destroy end class EventOccurence < ActiveRecord::Base belongs_to :event end 因此,上面的eventoccurrence对象是“野餐”的一次性事件,应该总共发生2次(1月2日、1月9日) 但是,我无法同时渲染所有3个事件。我试过:

我目前有两种型号:

class Event < ActiveRecord::Base
   has_many :event_occurrences, dependent: :destroy
end

class EventOccurence < ActiveRecord::Base
  belongs_to :event
end
因此,上面的
eventoccurrence
对象是“野餐”的一次性事件,应该总共发生2次(1月2日、1月9日)

但是,我无法同时渲染所有3个事件。我试过:

@events = Event.all.count
=> 2 

@events = Event.all.includes(:event_occurrences).count
=> 2

@events = Event.all.joins(:event_occurrences).count
=> 1
我不确定我在这里做错了什么我的猜测是,我的模型设置不正确,无法处理重复事件。如果是这样的话,我当然希望您能提供一些反馈,告诉我如何更好地将这些事件存储在联接表中


任何帮助都将不胜感激

是的,我认为你用错了。实际上,你只有3个事件,比方说,每个事件都有可能发生。因此,对于每个事件,您可以询问其发生情况。像

@event.event_occurrences.each do |occurrence|
    occurrence.date #for example
do

希望这能有所帮助。

所以,对于没有任何额外事件的“单个”事件,我是否仍应将其存储在
事件\u事件
表中?按照您对其建模的方式,是的,无论如何,我认为,这是应该起作用的方式啊,好的。因此,我想澄清一下:我是否应该将我的
:start_time
:end_time
字段移到
EventOccurrence
模型中,因为这些字段是可变的,并且会随着每个新事件的发生而变化?是的,所有只属于每个事件的信息都应该移到event_occurrence模型中。真幸运,就是这样!非常感谢。
@event.event_occurrences.each do |occurrence|
    occurrence.date #for example
do