Using rails 3.2.13 and spree 2.0.2
I\'ve encountered the similar problem as in Rails mountable engine under a dynamic scope
My routes:
scope \':l
Faced exactly the same problem and I have found a solution for that...
Here is my application_controller-File (my engines inherit from this file (which is the Main Apps ApplicationController, so that I don't have code-duplication)
#!/bin/env ruby
# encoding: utf-8
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
before_filter :set_locale_from_params
def url_options
{ locale: I18n.locale }
end
protected
def set_locale_from_params
if params[:locale]
if I18n.available_locales.include?(params[:locale].to_sym)
I18n.locale = params[:locale]
else
flash.now[:notice] = 'Translation not available'
logger.error flash.now[:notice]
end
end
end
end
Note, that the url_options-code is outside the protected part. It has to be public.
Found the tipps for the solution here: default_url_options and rails 3
Hope it helps
Regards
Philipp