nrutamiento de rieles: dar valores predeterminados para los ayudantes de ruta
¿Hay alguna forma de proporcionar un valor predeterminado a los ayudantes de URL / ruta?
Tengo un alcance opcional que abarca todas mis rutas:
#config/routes.rb
Foo::Application.routes.draw do
scope "(:current_brand)", :constraints => { :current_brand => /(foo)|(bar)/ } do
# ... all other routes go here
end
end
Deseo que los usuarios puedan acceder al sitio utilizando estas URL:
/foo/some-place
/bar/some-place
/some-place
Por conveniencia, estoy configurando un@current_brand
en miApplicationController
:
# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
before_filter :set_brand
def set_brand
if params.has_key?(:current_brand)
@current_brand = Brand.find_by_slug(params[:current_brand])
else
@current_brand = Brand.find_by_slug('blah')
end
end
end
Hasta ahora todo bien, pero ahora debo modificar todo*_path
y*_url
llama para incluir el:current_brand
parámetro, aunque es opcional. Esto es realmente feo, OMI.
¿Hay alguna forma en que pueda hacer que los ayudantes de ruta se recuperen automáticamente en@current_brand
?
O quizás una mejor manera de definir el alcance enroutes.rb
?