Кемпинг разбивает 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
Другие вопросы по тегам