Algunas de nuestras rutas de rieles necesitan una configuración regional para generar la URL (por ejemplo, domain.com/en/courses ), mientras que el controlador base (para domain.com ) no usa la configuración regional. Lo configuramos agregando la configuración regional en default_url_options del controlador derecho.
Pero cuando lo pruebo en Rspec, aparece un error de missing required keys que solicita la configuración regional. Cuando agrego un parámetro de configuración regional en la especificación, visit course_path(@course, locale: :en) todo vuelve a la normalidad... ¡pero tenemos MUCHAS especificaciones!
Intenté usar el método default_url_option en ActionView::TestCase::TestController y ActionDispatch::Routing::RouteSet así
class ActionView::TestCase::TestController def default_url_options(options = {}) { locale: I18n.default_locale } end end class ActionDispatch::Routing::RouteSet def default_url_options(options = {}) { locale: I18n.default_locale } end endPero estableció la configuración regional para toda la aplicación, no solo para algunas rutas específicas...
¿Hay alguna manera de establecer un parámetro predeterminado para algunas rutas en el soporte de rspec?
en el controlador de aplicaciones
if Rails.env.test? before_action :set_default_locale private def set_default_locale I18n.locale = params.fetch(:locale, :en) end endse que no es la forma correcta
no actualiza su aplicación en el nivel de rspec, pero hasta ahora esto es lo que puedo pensar en mi cabeza
Actualización en el nivel de ruta
if Rails.env.test? defaults = { locale: :en } else defaults = {} end scope "(:locale)", :locale => /en|id/, :defaults => defaults do