sass - What is the equivalent of Rails.application.assets in a production environment? -


i'm using sass::engine compile css file dynamically, , need pass environment , load paths sprockets. works fine in development:

def compile_scss   view_context = actionview::base.new   environment = rails.application.assets    # body , filename instance variables created elsewhere           @compiled_file = sass::engine.new(body,                                     filename: filename,                                     syntax: :scss,                                     cache: false,                                     load_paths: environment.paths,                                     sprockets: {                                       context: view_context,                                       environment: environment                                     }).render end 

but fails in production because rails.application.assets nil. equivalent in production?

rails.application.assets nil in production because assets precompiled , served public folder (thanks @bkunzi01 that). also, sprockets needs asset paths passed in order run, not environment. paths available rails.application.config.assets.paths. able stylesheet compiler working following method.

def compile_scss   view_context = actionview::base.new   environment = rails.application.assets || rails.application.config.assets    # body , filename instance variables created elsewhere           @compiled_file = sass::engine.new(body,                                     filename: filename,                                     syntax: :scss,                                     cache: false,                                     load_paths: environment.paths,                                     sprockets: {                                       context: view_context,                                     }).render end 

Comments