2010-09-20 18 views
0

Partie 1:intermédiaire Ramaze Routing Aide S'il vous plaît

J'ai un appel à layout(:default){|path,wish| wish !~ /rss|atom|json/} mais les demandes de /foo/bar.json semblent penser wish est html et utilise la disposition de toute façon. Comment puis-je réparer cela?

Partie 2:

Je veux la route /path/to/file.ext pour qu'il appelle la méthode to sur le contrôleur mis en correspondance avec /path et utilise ext lors de la formulation du retour. Existe-t-il une meilleure façon (plus élégante) de faire cela que de passer le 'fichier.ext' à la méthode to, de l'analyser et de faire des cas? Cette question aurait été plus succincte si j'avais écrit, comment on fait REST avec Ramaze? Il semble y avoir une réponse de Google Groupes à celle-ci, mais je ne peux pas y accéder pour une raison quelconque.

Répondre

1
class ToController < Controller 

    map '/path/to' 
    provide(:json, :type => "application/json") { |action, val| val.to_json } 

    def bar 
    @barInfo = {name: "Fonzie's", poison: "milk"} 
    end 

end 

Ce contrôleur retourne JSON simple lorsque vous demandez /path/to/bar.json et utilise la mise en page + vue emballage lorsque vous demandez /path/to/bar (Ramaze n'a pas de réglage de mise en page par défaut, la mise en page dans cet exemple provient de la classe parente du contrôleur).

+0

Fonctionne parfaitement! Je peux sortir l'horrible kludge que j'avais en place maintenant :) –

+0

Cool. Le routage Ramaze peut prêter à confusion, mais il existe généralement une bonne façon de répondre à vos besoins particuliers. Le système de résolution de modèle est très flexible aussi, et parfois confus. –