请帮我找到一种在父范围内调用子范围的方法。有什么方法可以实现这一点。
方案如下:
class Film < ActiveRecord::Base
...
has_many :shows
scope :active_shows, ->{
joins(:shows)
}
...
end
class Show < ActiveRecord::Base
...
belongs_to :film
scope :active_for_now, ->{
...
}
...
end
从上面的例子中,我想知道如何从active_for_now
调用范围active_shows
。 show
表格包含字段start_time
和end_time
,当我致电Film.active_shows
时,必须让所有电影都有当前时间的有效节目。
答案 0 :(得分:3)
我对范围和关联名称有点困惑,他们是否代表我没有看到的关系,但是要调用 console.log('data', data); //Showing the table value through console
$(target).html('<table id="data_table"></table>');
$('#data_table').bootstrapTable(data);
上定义的范围,你可以使用{{3} }
has_many
答案 1 :(得分:3)
您可以设置单独的has_many
association with a scope:
class Film < ActiveRecord::Base
has_many :shows
has_many :active_shows, class_name: 'Show', ->{ Show.active_for_now }
end
主要优点是您可以在加入时直接使用关联:
@films = Film.eager_load(:active_shows).find(params[:id])