两种模型的Ruby-on-Rails关系
我有两种不同的型号 项目模型两种模型的Ruby-on-Rails关系,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,rails-migrations,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,Rails Migrations,我有两种不同的型号 项目模型 class Item < ActiveRecord::Base belongs_to :category attr_accessible :make, :model, :name, :purchasedfrom, :qrcode, :serialnumber, :category_id end class Event < ActiveRecord::Base belongs_to :category attr_acces
class Item < ActiveRecord::Base
belongs_to :category
attr_accessible :make, :model, :name, :purchasedfrom, :qrcode, :serialnumber, :category_id
end
class Event < ActiveRecord::Base
belongs_to :category
attr_accessible :name, :location_id, :category_id
end
class项
事件模型
class Item < ActiveRecord::Base
belongs_to :category
attr_accessible :make, :model, :name, :purchasedfrom, :qrcode, :serialnumber, :category_id
end
class Event < ActiveRecord::Base
belongs_to :category
attr_accessible :name, :location_id, :category_id
end
class事件
我不知道如何执行以下操作:
- 一个
有多个事件
,可位于项目
处事件
历史记录仍然显示来自特定事件的事件
项
- 将显示来自以下事件的项目:localhost/event/:id/items
我已经看到了
:通过的用法,我相信我必须在这里使用。如果我正确理解了您的问题,您可以在事件模型中编写类似的内容
class Event
def items
category.items
end
end
然后在控制器中
@event = Event.find(params[:id])
@items = @event.try(:items)
如果一个类别
可以有许多事件
,我认为您必须在项目
中添加事件id
,以便能够准确地知道在一个事件
上有哪些项目
。
(在这种情况下,添加关系)
或者,如果一个项目
可以在多个事件
上,则在事件
和项目
之间联接表,并将_和_属于_多个项目
编辑:
如果是这样的话,添加表events\u items
,关系has\u和属于\u-many:items
(在Event
和中:events
在Item
中),并阅读has\u和\u-many
的文档
否则,如果您正在查找某个事件中出现的项目
,您将找到所有项目
,这些项目都出现在所有事件中
,它们与您正在调查的事件具有相同的类别。我认为您想要做的是:
class Item < ActiveRecord::Base
belongs_to :event
end
您应该使用has many:through
或has_和_-belient_-to_many
关系。在调用items
属性之前,请确保加倍检查类别
关联是否存在。我真的很困惑。项目可以位于事件中。项
类似于在所述事件
中使用的扬声器或麦克风。因此,我们在一个事件中有多个项
。事件
结束,项目返回存储位置。但是,如果我查看该事件,我可以看到该事件中的项目。事件
表具有:名称、位置、日期、类别、id
。那么,如何在不同的事件中关联多个项
?我真的很困惑。项目可以位于事件中。项
类似于在所述事件
中使用的扬声器或麦克风。因此,我们在一个事件中有多个项
。事件
结束,项目返回存储位置。但是,如果我查看该事件,我可以看到该事件中的项目。事件
表具有:名称、位置、日期、类别、id
。那么,我如何在不同的事件中关联多个项目
?我改变了我的建议,希望能回答您的问题。