Кемпинг разбивает URL-адреса на вопросительные знаки
Вот моя проблема:
Кемпинг разбивает ссылки на вопросительные знаки.
Так что, если у нас есть некоторый код, подобный этому:
Camping.goes :CodeLine
module CodeLine::Controllers
class Index
def get
render :index
end
end
class TextEntered < R '/(.*)'
def get(textStringEntered)
"#{textStringEntered}"
end
end
end
module CodeLine::Views
def index
html do
head do
title "Uh Oh"
end
body do
text "Looks like you got to the index"
br
br
form :name => "input" do
input :type => "text", :name => "text"
input :type => "submit", :value => "Submit"
end
end
end
end
end
Бежать camping path/to/file
После перехода localhost:3301
В вашем браузере, введя текст в текстовое поле и нажав "Отправить", вы должны увидеть все после косой черты, но вместо этого он разбивает URL-адрес на вопросительный знак и, поскольку он думает, что после косой черты ничего нет, он переносит вас в индекс,
Вопрос: можно ли настроить input
так что он не использует знак вопроса, или я могу сделать кемпинг не разделить на знак вопроса?
Приложение
Проверено в
1. Google Chrome
2. Firefox
3. Сафари
1 ответ
Маршрут соответствует только пути URL:
https://example.com/hello/world?a=this&b=hello&c=world#nice
^ ^ ^ ^ ^
Schema Host Path Query parameters Fragment
В Camping вы получаете доступ к параметрам запроса через @input
:
@input.a # => "this"
@input.b # => "hello"
@input.c # => "world"
Параметры запроса больше похожи на "опции", которые вы можете передать контроллеру. Например, вы не хотите иметь отдельный контроллер для обработки "сортировки по имени" и "сортировки по дате", поэтому вместо этого вы используете параметры запроса:
class Search
def get
query = @input.q || "*"
page = (@input.page || 1).to_i
sort = @input.sort || "name"
@results = fetch_results_from_database_or_something(query, page, sort)
render :search
end
end
Таким образом, все эти работы:
/search?query=hello # Page 1, sort by name
/search?page=5 # Page 5, sort by name, search for everything
/search?query=cars&page=4&sort=date