我有两种不同的模型。
项目模型
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
我无法弄清楚如何执行以下操作:
Event
有多个Item
,可以在Event
。 Event
历史记录仍显示特定事件的Items
。
将显示来自活动的项目: localhost / event /:id / items
我无法弄明白这一点。如果我能在这个问题上找到一些方向,我将不胜感激!提前感谢您的所有帮助。
我已经看到使用:through
,我相信我必须在这里使用。
答案 0 :(得分:1)
如果我理解你的问题,你可以在这里写一些类似于事件模型的内容。
class Event
def items
category.items
end
end
然后在控制器中,
@event = Event.find(params[:id])
@items = @event.try(:items)
答案 1 :(得分:0)
如果一个Category
可以包含多个Events
,我认为您必须在event_id
中添加Item
,以便能够准确了解已发送的Items
只有一个Event
。
(在这种情况下,为此添加关系)。
如果一个Event
可以在多个Item
Item
和Events
之间以及has_and_belongs_to_many之间加入表格
编辑:
如果是这样,请添加表格events_items
,关系has_and_belongs_to_many :items
(Event
中的:events
和Item
中的has_and_belongs_to_many
),然后阅读文档< / strong> for Items
。
否则,如果您正在查找某个Event
上的Items
,您会发现所有<{strong> {{1}上的所有Events
与您正在调查的Category
具有相同的Event
。
答案 2 :(得分:0)
我认为你想要做的是:
class Item < ActiveRecord::Base
belongs_to :event
end
和事件:
class Event < ActiveRecord::Base
has_many :items
end
然后您应该可以通过调用以下方式查看事件的项目:
@event = Event.find_by_id(:id)
@event.items.all