ruby-on-rails - 组 has_and_belongs_to_many
问题描述
给定一个带有 ActiveStorage 的模型:DayFrame、Day、Session。模型和迁移见下文。DayFrame 和 Session 是多对多的关系。day_frames_sessions 中间连接表,包括引用每个类 DayFrame 和 Session 的外键。如何按会话获取 day_frames 组并按 day.date 排序,如下所示:
{session_id_1=> [DayFrame1, DayFram2, DayFram3], session_id_2 => [DayFrame2, DayFram1, DayFram4]}
class DayFrame
has_and_belongs_to_many :sessions
belongs_to :day
end
class Day
has_and_belongs_to_many :sessions
has_many :day_frames
end
class Session
has_and_belongs_to_many :conference_day_frames
end
The migrations are:
class CreateDay < ActiveRecord::Migration[5.2]
def up
create_table :days do |t|
t.date :date
t.string :day_type
t.timestamps
end
end
def down
drop_table :days
end
end
class CreateDayFrame < ActiveRecord::Migration[5.2]
def up
create_table :day_frames do |t|
t.string :name
t.time :begin_time
t.time :end_time
t.string :frame_type
t.timestamps
t.references :day, index: true
end
def down
drop_table :day_frames
end
end
class CreateSessions < ActiveRecord::Migration[5.2]
def up
create_table :sessions do |t|
t.integer :number, limit: 1
t.string :title
t.string :short_title
t.boolean :is_active
t.timestamps
end
end
def down
drop_table :sessions
end
end
class CreateDayFramesSessions < ActiveRecord::Migration[5.2]
def up
create_join_table :day_frames, :sessions do |t|
t.index :day_frame_id
t.index :session_id
end
end
def down
drop_table :day_frames_sessions
end
end
解决方案
推荐阅读
- google-analytics - 谷歌分析导出到 BigQuery
- video - 如何在STM32H7上配置DCMI外设
- python - PySide:QtGui.QFileDialog - UNC 路径问题
- visual-studio - F# 在 .fs VS .fsx 文件中编译 VS Intellisense
- spring-boot - spring cloud cli 的问题 [NoSuchMethodError: org.springframework.cloud.launcher.cli.LauncherCommand]
- swift - 导航栏仅显示在第一个 tabBarController
- amazon-web-services - 即使我删除了 lambda 堆栈(即 .CFN),Lambda 版本也会增加?
- ios - 我怎么知道将下拉框的选定内容放在哪个按钮中。Swift
- node.js - 如何从 node.js 中的 http-request 读取 formData 字段?
- wpf - 用于 MySQL 的 Linq2db