Определение происхождения параметров, передаваемых из вида в контроллер - PullRequest
0 голосов
/ 07 мая 2011

В моем ApplicationController родительском классе у меня есть метод действия, называемый dig, который считывает параметры через params[] хеш-подобную структуру.Я хотел бы иметь любое представление, которое создает ссылку на любой контроллер через вспомогательную функцию link_to с действием dig, чтобы сначала вызвать действие родителя.Затем я хотел бы определить, что представляет эта параметризованная информация (ее тип) или что создало ссылку (предыдущий или исходный вид).

Есть идеи, как лучше всего это сделать?Есть ли способ передать объект через link_to и затем использовать его метаданные?Если это так, это нарушит парадигму рельсов?

Ответы [ 2 ]

1 голос
/ 12 января 2012

Я думаю, что для того, чтобы иметь исходную ссылку, вам нужно сделать что-то вроде этого:

request.env['HTTP_REFERER']

Это даст URL-адрес, где было создано действие, оттуда вы можете обработать URLполучить контроллер, действие и идентификатор.Надеюсь, это поможет!

1 голос
/ 08 мая 2011

Если вы ищете то, что называется внутри вашего кода, метод Ruby caller является основой для дампа стека, который возникает при возникновении исключения.Вы можете подключиться к нему и спросить, какая цепочка вызовов была в любой момент.

Если вы хотите отслеживать входящие запросы от браузера с внешнего сайта, это становится намного сложнее, потому что браузерам не нравитсячтобы раскрыть последнее местоположение больше.Если браузер перенаправляется вокруг вашего собственного сайта, вы можете использовать сеансы или файлы cookie для отслеживания его движения.

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