我制作了一个日历应用,用户可以在其中创建多个日历,并在Rails中为每个不同的日历添加多个条目。例如,我有下表
条目
id description
----------------------------------------------------
1 go shopping
2 go to cinema
3 do homework
日历
id entry_id
----------------
1 1, 3
2 2
3 1, 2, 3
如果我想从日历中的一行(在数组中?)获取所有条目,那么该关联/解决方案是什么?如何在行中添加新条目? (我查看了has_and_belongs_to_many关联,但似乎需要第三个表,它不像指向一行的多个ID一样直接...)
答案 0 :(得分:0)
如果你以后不想做疯狂的连接,你可能想要一个连接表。是的,第三张表是个好主意。
class Entry < ActiveRecord::Base
has_many :calendars, through: :scheduling
end
class Calendar < ActiveRecord::Base
has_many :entries, through: scheduling
end
class Scheduling < ActiveRecord::Base
belongs_to :entry
belongs_to :calendar
end
然后表格如下:
entires
id:integer
description:string
calendars
id:integer
schedulings
id:integer
calendar_id:integer
entry_id:integer
您的ActiveRecord查询如下所示:
Calendar.find(3).entries.ids #=> [1, 2, 3]
Entry.find(1).calendars.ids #=> [1, 3]
导轨指南也提供了一个很好的例子: