我在与 rails 一起使用的数据库中存在多对多关系。
假设我有一个看起来像这样的模式:
电影院
-cinema_id
- 名称电影
- movie_id
- 名称放映时间
- 放映时间 ID - 时间戳 - 电影 ID - 电影 ID
所以基本上:[电影院] 1 -- N [放映时间] N -- 1 [电影]
在我的一个页面中,我有一个电影院 ID,并希望根据cinema_id 显示电影并将每部电影的放映时间分组。我不确定如何正确处理这个问题。在 .Net 中,我会使用 SelectMany linq 运算符并创建电影集合,但这似乎在 ruby/rails 中不存在。
我认为这样做的一种方法是:
@showtimes = Showtime.where(:cinema_id, cinema_id)
@showtimes.each do |st|
@movies.add(st.Movie) unless @movies.include? st.Movie
end
那行得通……但看起来……丑陋还是只有我?