Je dois séparer les modèles: les sections imbriquées et les articles, section a_many articles. Les deux ont attribut path comme aaa/bbb/ccc, par exemple:contrôleur de rails de commutation
movies # section
movies/popular # section
movies/popular/matrix # article
movies/popular/matrix-reloaded # article
...
movies/ratings # article
about # article
...
Itinéraires J'ai:
map.path '*path', :controller => 'path', :action => 'show'
Comment créer une action de spectacle comme
def show
if section = Section.find_by_path!(params[:path])
# run SectionsController, :show
elsif article = Article.find_by_path!(params[:path])
# run ArticlesController, :show
else
raise ActiveRecord::RecordNotFound.new(:)
end
end
Je devrais intercepter avant le module de routage? Ou existe-t-il un moyen de créer un itinéraire avec proc/lambda? – tig
Oui, interception avant le module de routage. Ensuite, les routes dans votre application "Rails" restent très normales, mais une application middleware réécrit les URL entrantes en fonction du chemin indiqué par le navigateur. –