в Ruby on Rails 2.3.2, как распечатать параметрические усилители во время действия по созданию?

Я пробовал это:

Они очень похожи, но отличаются в деталях. Я могу порекомендовать QCacheGrind , который наиболее полно упакован и имеет также графическое представление, которое может помочь намного быстрее идентифицировать проблемы.

12
задан Pesto 6 July 2009 в 20:28
поделиться

5 ответов

Проще всего вывести параметры в журнал:

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"}
21
ответ дан 2 December 2019 в 05:55
поделиться

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.

1
ответ дан 2 December 2019 в 05:55
поделиться

Вам ничего не нужно, кроме как смотреть в ваши журналы (они находятся в / 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 , чтобы вы могли получить к нему доступ с помощью символа).

1
ответ дан 2 December 2019 в 05:55
поделиться

Используя 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 ="}

1
ответ дан 2 December 2019 в 05:55
поделиться

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.

0
ответ дан 2 December 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: