Rails 3.1 Маршруты с фиксированными структурированными параметрами - PullRequest
0 голосов
/ 27 декабря 2011

У меня есть смс-шлюз, который выдвигает мне get-запросы, если пользователь отвечает на полученные смс.

# gateway pushes following fixed style get-params 
# to my server/reply_from_gateway-action: ?id=123456&answer=Test

# => http://myserver.aaa/reply_from_gateway?id=123456&answer=Test

А теперь я хочу добавить следующий маршрут, поскольку шлюз sms имеет определенную структуру параметров get:

get "deactivate_via_sms?id=:id&answer=:answer" => "reminders#deactivate_via_sms"
      :as => "deactivate_via_sms"

Но это не работает, вы можете мне помочь?

Ответы [ 2 ]

0 голосов
/ 19 июня 2014

Вы можете извлекать параметры в стиле CGI из параметров вручную в вашем контроллере, вам не нужно (или не нужно) их на маршруте

, но в этом случае вы можетене используйте помощники, такие как

deactivate_via_sms_path(id,answer)

, или вы можете использовать этот код для создания помощника

get "deactivate_via_sms?id=:id&answer=:answer" => "reminders#deactivate_via_sms"
  :as => "deactivate_via_sms"

, но ваша маршрутизация не удастся

Я решил эту проблему, изменив"?"на "/" в маршруте

get "deactivate_via_sms/id=:id&answer=:answer" => "reminders#deactivate_via_sms"
  :as => "deactivate_via_sms"

маршрутизация работает, а вспомогательный метод также работает нормально

0 голосов
/ 27 декабря 2011

Вы можете извлечь параметры в стиле CGI из params вручную в вашем контроллере, вам не нужно (или не нужно) их в маршруте:

get "deactivate_via_sms" => "reminders#deactivate_via_sms", :as => "deactivate_via_sms"

и затем в RemindersController#deactivate_via_sms:

def deactivate_via_sms
    id     = params[:id]
    answer = params[:answer]
    #...
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...