我的电影模特has_many:预告片。预告片有一个is_feature_trailer的布尔列。
在我的trailers_controller索引中,我渲染所有trailers.where(is_feature_trailer:false)。
在_trailer.html.erb中我想显示相关的特征预告片(如果它存在)(如果trailer.movie.trailer.where(is_feature_trailer:true))。但我想避免提出这个问题,因为我正在渲染每个预告片。
实现这一目标的最佳方式是什么?
答案 0 :(得分:1)
您可以在associations
上指定 条件 。
#movie.rb
has_many :trailers
has_one :featured_trailer, -> { where(is_featured_trailer: true) }, class_name: "Trailer"
或
您可以使用scope
#trailer.rb
scope :featured_trailer, ->(movie) { where(movie_id: movie.id, is_featured_trailer: true) }