oteamento @Rails: fornecendo valores padrão para os auxiliares de caminho
xiste alguma maneira de fornecer um valor padrão aos auxiliares de URL / caminh
Tenho um escopo opcional em todas as minhas rotas:
#config/routes.rb
Foo::Application.routes.draw do
scope "(:current_brand)", :constraints => { :current_brand => /(foo)|(bar)/ } do
# ... all other routes go here
end
end
Quero que os usuários possam acessar o site usando estes URLs:
/foo/some-place
/bar/some-place
/some-place
Por conveniência, estou configurando um@current_brand
no meuApplicationController
:
# 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
Até agora tudo bem, mas agora devo modificar todos os*_path
e*_url
chama para incluir o:current_brand
, mesmo que seja opcional. Isso é realmente feio, IMO.
Existe alguma maneira de fazer com que os auxiliares do caminho atinjam automaticamente@current_brand
?
Ou talvez uma maneira melhor de definir o escopo emroutes.rb
?