EDIT: Je l'ai trouvé un moyen bien plus simple: http://www.arctickiwi.com/blog/7-host-and-domain-based-routing-in-ruby-on-rails
Pas exactement une réponse mais c'est le meilleur que je peux donner. Peut-être que ça t'aidera aussi.
Idéalement, this blog post from transfs.com et sous-domaine-fu devrait faire l'affaire. J'ai essayé de l'implémenter, cependant, et ils ne semblent pas bien jouer ensemble. Fondamentalement, si je n'inclus pas l'initiateur, la route de sous-domaine fonctionne correctement. Si j'inclus l'initialiseur, la route du sous-domaine est interrompue (tout est intercepté par map.root). J'ai le sentiment que c'est avec la façon dont il construit la chaîne de condition dans l'initialiseur. Si vous pouvez comprendre comment cela se brise, alors vous aurez une application qui fonctionne.
Mon initialiseur:
module ActionController
module Routing
class RouteSet
def extract_request_environment(request)
env = { :method => request.method }
env[:domain] = request.domain if request.domain
env[:host] = request.host if request.host
env
end
end
class Route
alias_method :old_recognition_conditions, :recognition_conditions
def recognition_conditions
result = old_recognition_conditions
[:host, :domain].each do |key|
if conditions[key]
operator = "==="
if conditions[key].is_a?(Regexp)
operator = "=~"
end
result << "conditions[:#{key.to_s}] #{operator} env[:#{key.to_s}]"
end
end
result
end
end# end class Route
end
end
Mes itinéraires (seulement pour le développement). Vous verrez mon domaine de développement local, stiltify.dev. Désolé, j'ai essayé de faire en sorte que ça soit bien, mais je n'ai pas réussi à avoir un bloc de code sympa. Je le mets sur pastie à la place: http://pastie.org/940619.
La section des commentaires dans Ryan Bates' screencast a été très utile, et m'a permis de comprendre le sous-domaine => false et les autres erreurs dans lesquelles ils se trouvaient. Je n'ai toujours pas résolu le problème!