Добавление пустого параметра строки запроса к URL в Rails - PullRequest
0 голосов
/ 13 июня 2010

Есть ли способ добавить что-то в строку запроса без заданного значения?

Я бы хотел, чтобы генерировался такой вид URL: http://local/things?magic.

What I 'm ищет, когда пользователь переходит на http://local/other?magic, тогда каждый URL на сгенерированной странице будет содержать magic в конце.

Следующий код - почти решение, но оно дает мне http://local/things?magic=.Существует дополнительный =, который мне здесь не нужен.

def default_url_options(options)
    if params.has_key?("magic")
        { :magic => "" }
    end
end

Установка { :magic => nil } полностью удалит магию из сгенерированных URL-адресов.

Ответы [ 2 ]

0 голосов
/ 12 августа 2010

Это то, для чего нужны куки!cookies[:magic] = 'magic' и все автоматически работает так, как вы ищете.Не с параметрами строки запроса URL, но всякий раз, когда браузер запрашивает другой URL (до тех пор, пока браузер не будет закрыт), он будет включать cookie в запрос.

0 голосов
/ 03 августа 2010

Отредактировано из-за измененного вопроса в комментарии ниже:

Ах, я вижу.

Вы можете легко использовать один и тот же URL для всех устройств и просто отделиться, проверив среду запроса на HTTP_USER_AGENT.

Но если этого различия недостаточно (я думаю, что этого достаточно для более чем 80% всех случаев), вы можете сделать следующее:

in config/routes.rb:

map.with_options :prefix => '/m', :format => 'mobile' do |mobile|
  mobile.resources :apples
  mobile.resource :user
  mobile.connect #...
end

# generates
# /m/apples
# /m/apples/new
# ...
# /m/user
# ... 

Я не проверял это, но, возможно, вам придется добавить отображение типа MIME для: format => 'mobile'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...