Gibt es eine Möglichkeit, einen Standardwert für die URL/Pfad-Helfer bereitzustellen?Rails Routing: Geben Standardwerte für Pfadhelfer
Ich habe einen optionalen Rahmen um alle meine Routen Einwickeln:
#config/routes.rb
Foo::Application.routes.draw do
scope "(:current_brand)", :constraints => { :current_brand => /(foo)|(bar)/ } do
# ... all other routes go here
end
end
Ich Mitglieder möchten die Website zugreifen können diese URLs verwenden:
/foo/some-place
/bar/some-place
/some-place
Für Bequemlichkeit, ich bin Einrichten eines @current_brand
in meinem ApplicationController
: So
# 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
weit so gut, aber jetzt muss ich alle *_path
und *_url
Aufrufe ändern, um die :current_brand
Parameter aufzunehmen, obwohl es optional ist. Das ist wirklich hässlich, IMO.
Gibt es eine Möglichkeit, die Weghelfer automatisch auf @current_brand
abholen zu lassen?
Oder vielleicht eine bessere Möglichkeit, den Umfang in routes.rb
zu definieren?
Dank. Dies ist die Lösung, mit der ich am Ende war. Da gibt es auch viele Probleme, wie zum Beispiel das Einrichten in den Mailern und ein Hack, um es mit rspec zu arbeiten (eingefügt in meiner eigenen Antwort). – u2622
Oh, ja, es tut mir leid, dass ich nicht darauf hingewiesen habe . Freut mich, dass du es aus Gründen der Vollständigkeit erwähnt hast. – CMW