Ruby on rails 通过rails中的记录器显示窗体对象的属性

Ruby on rails 通过rails中的记录器显示窗体对象的属性,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想调试我的应用程序,并检查通过logger在控制器类中的form对象上提交了哪些值?怎样才能做到呢?调试rails应用程序有更好的实践吗?您的rails日志(例如log/development.log)应该已经在“参数”中显示表单提交的所有内容。它将如下所示: Processing MusicServiceAdmin::UsersController#edit (for 127.0.0.1 at 2014-07-31 10:34:16) [GET] Session ID: 3c0cfbe7

我想调试我的应用程序,并检查通过logger在控制器类中的form对象上提交了哪些值?怎样才能做到呢?调试rails应用程序有更好的实践吗?

您的rails日志(例如
log/development.log
)应该已经在“参数”中显示表单提交的所有内容。它将如下所示:

Processing MusicServiceAdmin::UsersController#edit (for 127.0.0.1 at 2014-07-31 10:34:16) [GET]
  Session ID: 3c0cfbe7ff23f8f718f6626748a4a
  Parameters: {"id"=>"35363"}

参数

Rails中的每个请求都使用
控制台进行跟踪
-您应该检查从那里发出的
参数

Started POST "/admin/login" for 127.0.0.1 at 2014-04-26 16:25:34 +0100
Processing by Admin::Users::SessionsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"+I1TKfc1YDuil7EI1frrFIoerNg5uonB1CIiujJO0jo=", "user"=>{"email"=>"*********", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign In"}
  [1m[36mUser Load (482.0ms)[0m  [1mSELECT  `users`.* FROM `users`  WHERE `users`.`email` = 'rpeck@frontlineutilities.co.uk'  ORDER BY `users`.`id` ASC LIMIT 1[0m
  [1m[35m (435.0ms)[0m  BEGIN
  [1m[36mSQL (439.0ms)[0m  [1mUPDATE `users` SET `current_sign_in_at` = '2014-04-26 15:25:35', `last_sign_in_at` = '2014-04-04 12:08:45', `sign_in_count` = 51, `updated_at` = '2014-04-26 15:25:36' WHERE `users`.`id` = 2[0m
  [1m[35m (448.0ms)[0m  COMMIT
  [1m[36mOption Load (404.0ms)[0m  [1mSELECT  `options`.* FROM `options`  WHERE `options`.`name` = 'site_robots' LIMIT 1[0m
  [1m[35mOption Load (357.0ms)[0m  SELECT  `options`.* FROM `options`  WHERE `options`.`name` = 'site_title' LIMIT 1
  [1m[36mOption Load (428.0ms)[0m  [1mSELECT  `options`.* FROM `options`  WHERE `options`.`name` = 'site_description' LIMIT 1[0m
Redirected to http://lvh.me:3000/****
Completed 302 Found in 3165ms (ActiveRecord: 2993.2ms)
如果要“调试”,只需检查控制台中呈现的各种参数/操作。或者,您也可能希望对特定数据使用
Rails.logger.info
方法:

#app/controllers/your_controller.rb
Class YourController < ApplicationController
   def index
      Rails.logger.info("Test")
   end
end
#app/controllers/your_controller.rb
类YourController
谢谢您的帮助!!如果我想在controller.rb文件中获取控制台上提交的表单对象的值,您能告诉我语法吗?
Rails.logger.debug“params[:foo]=#{params[:foo]}”
?不确定这是否是您所说的“提交表单对象的值”的意思。