Поскольку некоторые настройки безопасности браузера блокируют активы HTTP при просмотре страницы HTTPS, вы не хотите делать это на уровне веб-сервера (например, mod_rewrite), поскольку некоторые браузеры не будут заходить так далеко.
Вы не хотите обрабатывать это на уровне представления или контроллера - в модели вы применяете бизнес-правила, например, сохраняете все HTTPS.
1) Предотвращение сохранения ссылок HTTP
class Content < ActiveRecord::Base
...
before_validation :force_https
def force_https
unless body.nil?
self.body.gsub! /http:\/\/my\.app\.server/, 'https://my.app.server'
end
end
...
end
2) Очистите существующий контент
Запустите консоль и запустите:
Content.all.each do |c|
c.update_attribute 'body',
c.body.gsub(/http:\/\/my\.app\.server/, 'https://my.app.server')
end