Я пробовал это:
Они очень похожи, но отличаются в деталях. Я могу порекомендовать QCacheGrind , который наиболее полно упакован и имеет также графическое представление, которое может помочь намного быстрее идентифицировать проблемы.
Проще всего вывести параметры в журнал:
Rails.logger.info("PARAMS: #{params.inspect}")
Если вы находитесь в режиме разработки, просто посмотрите в свой development.log, и эта строка будет там.
Область params представляет собой комбинацию полей URL / FORM (GET / POST), и она будет распечатана в журнале как часть обычной обработки вывода, поэтому вам может не понадобиться ее собственный дамп - любая разработка или производственный журнал содержит дамп параметров в верхней части строки журнала, например
Processing Clients::ClientsController#show (for x.x.x. at 2009-05-24 00:34:26) [GET]
Parameters: {"id"=>"303", "user_id"=>"2"}
If you're on a Mac, Spike is a great little app the analyses log files and will let you inspect params for requests, amongst other things.
Вам ничего не нужно, кроме как смотреть в ваши журналы (они находятся в / log
). Если вы не возитесь с чем-то, регистрация параметров включена по умолчанию во всех журналах.
Processing PostsController#create (for 127.0.0.1 at 2009-05-24 13:03:24) [POST]
Parameters: {"commit"=>"Create", "authenticity_token"=>"2G6BKOs8xNAaXiToVf4r1ko8QZzP9QAomi2PHVQC5Oc=", "story"=>{"something"=>"asdfafd"}}
Параметры
перечисляют все параметры, а хэш, следующий за "историей"
, является эквивалентом params [: story]
(все поступает на сервер в виде строк, и Rails превращает их в HashWithIndifferentAccess
, чтобы вы могли получить к нему доступ с помощью символа).
Используя Fiddler в Windows, показано
, что строка HTTP № 1:
POST /stories HTTP/1.1
это содержимое POST:
Authentity_token = 62iw% 2BrsxlCFsbnxsS7FXKRn6CcvJfjottrsBPlM5 5D = Google + Main + Сайт и история% 5Blink% 5D = www.google.com & commit = Создать
, указанный в таблице:
authenticity_token 62iw+rsxlCFsbnxsS7FXKRn6CcvJfjottrsBPlM5lZo=
story[name] Google Main Site
story[link] www.google.com
commit Create
, а журнал сервера:
Параметры: {"commit" => "Create" , "story" => {"name" => "Главный сайт Google", "link" => "www.google.com"}, "Authentity_token" => "62iw + rsxlCFsbnxsS7FXKRn6CcvJfjottrsBPlM5lZo ="}
If you're on a *NIX system (including OS X) open a new terminal window/tab and type the following command:
tail -f log/development.log
You'll get a constant stream of requests coming in -- including params -- and the resulting DB actions. Invaluable for development/debugging, IMO.