Как использовать params с косой чертой с Sinatra?
127
6
Играя с sinatra, я столкнулся с небольшой проблемой: когда я использую params со слэшами, это смущает механизм маршрутизатора. Итак, есть ли хороший способ справиться с этим параметром без необходимости его кодирования?
Код выглядит как
get 'add/:url' do
#....
end
И я собираюсь получить что-то вроде /add/ http://sctackoverflow.com/ working
спросил(а)
2009-02-09T20:23:00+03:00
12 лет назад
добавить комментарий
пожаловаться
Решение
75
Благодарю вас, я не слышал о параметрах splat и отлично работает для этого случая. В самом деле, я просмотрел документацию, и я нашел еще короче, используя параметры захвата и регулярные выражения:
get %r{/add/(.+)} do
url = params[:captures]
end
ответил(а)
2009-02-10T01:28:00+03:00
12 лет назад
добавить комментарий
пожаловаться
142
Вы пытались использовать параметры splat?
Что-то вроде:
get '/add/*' do
protocol = params[:splat].first
address = params[:splat][1..-1].join('/')
url = protocol + "//" + address
end
ответил(а)
2009-02-09T20:58:00+03:00
12 лет назад
добавить комментарий
пожаловаться
74
или используйте:
url = request.fullpath[5..-1]
ответил(а)
2010-12-29T17:58:00+03:00
10 лет, 2 месяца назад
добавить комментарий
пожаловаться
Ваш ответ