【发布时间】:2017-07-02 23:43:24
【问题描述】:
使用Scenic gem,我构建了一个由物化视图支持的活动记录模型
class MatviewSales < ActiveRecord::Base
self.table_name = 'matview_sales'
self.primary_key = :id
belongs_to :user
belongs_to :account
belongs_to :account_manager, class_name: User, foreign_key: 'manager_id'
def self.refresh
Scenic.database.refresh_materialized_view(table_name, concurrently: true)
end
end
我现在正尝试在 RSpec 中测试这个模型,但无论我做什么,我都无法让 Postgres 用记录填充视图:
> FactoryGirl.create(:sale_item)
> MatviewSales.refresh
> MatviewSales.all
=> #<ActiveRecord::Relation []>
如何使用记录填充物化视图以进行测试?
【问题讨论】:
-
:sale_item与MatviewSales有什么关系?您能否显示这 2 个表的架构和:sale_item工厂的代码? -
同意@Midwire。我们需要查看模式、物化视图的查询以及调用工厂时创建的行。此外,尝试在刷新中将
concurrently设置为false?
标签: ruby-on-rails postgresql rspec materialized-views scenic