How often does rails refresh the materialized views? And is it automatic or do you have to explicitly refresh them?
In the post the whenever gem (https://github.com/javan/whenever) is used, but you could use anything that is able to run things periodically.
If you'd want to stay solely within Postgres, there is also pg_cron (https://github.com/citusdata/pg_cron) which could be used to call REFRESH MATERIALIZED VIEW from within the database.