如何通过此Many_to_Many关系访问数据?
以下是我的数据库创作:
" Useres":
class CreateSubgroups < ActiveRecord::Migration
def change
create_table :subgroups do |t|
t.string :name
t.belongs_to :group
t.timestamps
end
end
end
关系:
class CreateRtimespans < ActiveRecord::Migration
def change
create_table :rtimespans do |t|
t.belongs_to :subgroup_id
t.belongs_to :timespan_id
end
end
end
使用:
class CreateTimespans < ActiveRecord::Migration
def change
create_table :timespans do |t|
t.string :name
t.text :descrition
t.integer :start_h
t.integer :start_m
t.integer :end_h
t.integer :end_m
end
end
end
我如何访问属于一个子组的所有时间跨度的名称? 反之亦然,我如何显示哪些子组使用特定的时间跨度?
答案 0 :(得分:1)
第一个问题
只要您获得实例,就可以执行任何查找操作。我通过在模型上调用.first获得一个实例。
Subgroup.first.timespans.each do |timespan|
puts timespan.name
end
反之亦然
Timespan.first.subgroups.each do |subgroup|
puts subgroup.name
end
答案 1 :(得分:1)
正如您的代码建议您有两个模型
亚群
和
的入库时间
由于它们之间存在多对多的关系,我们可以将它们用作
# all timespans related to a subgroup
subgroup.timespans # where variable subgroup is a Subgroup object
和
# all subgroups related to a timespan
timespan.subgroups # where variable timespan is a Timespan object