Как я могу упростить мои вложенные маршруты синатры? - PullRequest
1 голос
/ 07 июня 2010

Мне нужны вложенные подкаталоги в моем приложении sinatra, как я могу упростить этот повторяющийся код?

# ------------- SUB1 --------------
get "/:theme/:sub1/?" do
    haml :"pages/#{params[:theme]}/#{params[:sub1]}/index"
end

# ------------- SUB2 --------------
get "/:theme/:sub1/:sub2/?" do
    haml :"pages/#{params[:theme]}/#{params[:sub1]}/#{params[:sub2]}/index"
end

# ------------- SUB3 --------------
get "/:theme/:sub1/:sub2/:sub3/?" do
    haml :"pages/#{params[:theme]}/#{params[:sub1]}/#{params[:sub2]}/#{params[:sub3]}/index"
end

# ------------- SUB4 --------------
get "/:theme/:sub1/:sub2/:sub3/:sub4/?" do
    haml :"pages/#{params[:theme]}/#{params[:sub1]}/#{params[:sub2]}/#{params[:sub3]}/#{params[:sub4]}/index"
end

1 Ответ

0 голосов
/ 07 июня 2010

Вы можете использовать параметры сплат:

get "/:theme/*/?" do
  haml "pages/#{params[:theme]}/#{params[:splat].to_s}/index".to_sym  
end
...