【发布时间】:2017-01-07 19:00:32
【问题描述】:
我正在使用delayed_job,并在一个页面中显示与该作业相关的所有信息。
将工作列为:
<% @jobs.each do |item| %>
<%= item.inspect %>
<% end %>
我得到的详细信息如下:
#<Delayed::Backend::ActiveRecord::Job id: 57, priority: 0, attempts: 0, handler: "--- !ruby/object:Delayed::PerformableMailer\nobject...", last_error: nil, run_at: "2016-08-30 00:47:46", locked_at: nil, failed_at: nil, locked_by: nil, created_at: "2016-08-30 00:47:46", updated_at: "2016-08-30 00:47:46", queue: nil> #<Delayed::Backend::ActiveRecord::Job id: 55, priority: 0, attempts: 0, handler: "--- !ruby/object:Delayed::PerformableMailer\nobject...", last_error: nil, run_at: "2016-08-29 09:46:44", locked_at: nil, failed_at: nil, locked_by: nil, created_at: "2016-08-29 09:46:44", updated_at: "2016-08-29 09:46:44", queue: nil>
通过以上数据,我可以显示 id、优先级、尝试次数等;但是在处理程序的情况下,有一个由对象、方法名等组成的大字符串; 如何在 rails 视图中显示这个 handler.object 和 handler.method_name?请帮忙:
这是我的处理程序字符串:
--- !ruby/object:Delayed::PerformableMailer object: !ruby/class 'SubscriptionNotifier' method_name: :welcome args: - !ruby/object:User raw_attributes:deleted_at:名称:在测试电子邮件:intest@test.com 加密密码: “$2a$10$IUOp.QkdIPauTnVyBRQQXOD0nA.cUc1og/pIEQneBx3nWVY/94Hti”电话: ''网站:''名称:'' id:25 reset_password_token: reset_password_sent_at:remember_created_at:sign_in_count:'0' current_sign_in_at: last_sign_in_at: current_sign_in_ip: last_sign_in_ip:confirmation_token:created_at:&1 2016-08-30 00:47:46.390321885 Z 更新地址:*1 联系人 ID:位置:用户名: photo_file_name: photo_content_type: photo_file_size: photo_updated_at: time_zone: beta_code: account_id: 26 admin: true logo_file_name: logo_content_type: logo_file_size: logo_updated_at: 公司名称:license_number:spark_id:属性: !ruby/object:ActiveRecord::AttributeSet 属性: !ruby/object:ActiveRecord::LazyAttributeHash 类型: id: &6 !ruby/object:ActiveRecord::Type::Integer 精度:比例:限制: 范围:!红宝石/范围开始:-2147483648 结束:2147483648 不包括:真 电子邮件:&2 !ruby/object:ActiveRecord::Type::String 精度:比例: 限制:encrypted_password:*2 reset_password_token:*2 reset_password_sent_at: &7 !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter 子类型:&3 !ruby/object:ActiveRecord::Type::DateTime 精度: 规模:限制:remember_created_at:&8 !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter 子类型:*3 sign_in_count: &4 !ruby/object:ActiveRecord::Type::Integer 精度:比例:限制:范围:!红宝石/范围开始:-2147483648 结束: 2147483648 不包括:真正的 current_sign_in_at:&9 !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter 子类型:*3 last_sign_in_at:&10 !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter 子类型:*3 current_sign_in_ip:*2 last_sign_in_ip:*2 确认令牌:*2 created_at:&11 !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter 子类型:*3 updated_at:&12 !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter 子类型:*3 联系人 ID:*4 位置:*2 用户名:*2 照片文件名: *2 photo_content_type: *2 photo_file_size: *4 photo_updated_at: &13 !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter 子类型:*3 名称:*2 姓名:*2 电话:*2 网站:*2 时区: *2 beta_code: *2 account_id: *4 admin: &14 !ruby/object:ActiveRecord::Type::Boolean precision: scale: limit: 删除时间:&5 !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter 子类型:*3 logo_file_name:*2 logo_content_type:*2 logo_file_size: *4 logo_updated_at: &15 !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter 子类型:*3 公司名称:*2 许可证编号:*2 spark_id:*2 值: id: email: '' encrypted_password: '' reset_password_token: reset_password_sent_at:remember_created_at:sign_in_count:'0' current_sign_in_at: last_sign_in_at: current_sign_in_ip: last_sign_in_ip:confirmation_token:created_at:updated_at: contact_id: 位置: 用户名: photo_file_name: photo_content_type: photo_file_size: photo_updated_at: 名称: 姓名: 电话: 网站: time_zone: beta_code: account_id: admin: f deleted_at: logo_file_name: logo_content_type: logo_file_size: logo_updated_at: company_name: license_number:spark_id:additional_types:{}物化:true 委托哈希:已删除_at: !ruby/object:ActiveRecord::Attribute::From用户名:deleted_at value_before_type_cast:类型:*5 值:名称: !ruby/object:ActiveRecord::Attribute::FromUser name: name value_before_type_cast:在测试类型中:*2 值:在测试电子邮件中: !ruby/object:ActiveRecord::Attribute::FromUser name: email value_before_type_cast:intest@test.com 类型:*2 值: intest@test.com 加密密码: !ruby/object:ActiveRecord::Attribute::From用户名: encrypted_password value_before_type_cast: “$2a$10$IUOp.QkdIPauTnVyBRQQXOD0nA.cUc1og/pIEQneBx3nWVY/94Hti”类型: *2 价值:“$2a$10$IUOp.QkdIPauTnVyBRQQXOD0nA.cUc1og/pIEQneBx3nWVY/94Hti”电话: !ruby/object:ActiveRecord::Attribute::From用户名:电话 value_before_type_cast: '' 类型: *2 值: '' 网站: !ruby/object:ActiveRecord::Attribute::From用户名:网站 value_before_type_cast: '' 类型: *2 值: '' 名称: !ruby/object:ActiveRecord::Attribute::From用户名:指定 value_before_type_cast: '' 类型: *2 值: '' id: !ruby/object:ActiveRecord::Attribute::FromUser name: id value_before_type_cast:25 类型:*6 值:25 reset_password_token: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称: reset_password_token value_before_type_cast:类型:*2 reset_password_sent_at: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称: reset_password_sent_at value_before_type_cast:类型:*7 remember_created_at: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称: remember_created_at value_before_type_cast:类型:*8 sign_in_count: !ruby/object:ActiveRecord::Attribute::FromDatabase name: sign_in_count value_before_type_cast: '0' 类型: *4 current_sign_in_at: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称: current_sign_in_at value_before_type_cast:类型:*9 last_sign_in_at: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称: last_sign_in_at value_before_type_cast: 类型: *10 current_sign_in_ip: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称: current_sign_in_ip value_before_type_cast:类型:*2 last_sign_in_ip: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称: last_sign_in_ip value_before_type_cast:类型:*2 确认令牌: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称: Confirmation_token value_before_type_cast: 类型: *2 created_at: !ruby/object:ActiveRecord::Attribute::From用户名: created_at value_before_type_cast:*1 类型:*11 值:*1 updated_at: !ruby/object:ActiveRecord::Attribute::From用户名:updated_at value_before_type_cast: *1 type: *12 value: *1 contact_id: !ruby/object:ActiveRecord::Attribute::FromDatabase name:contact_id value_before_type_cast:类型:*4 位置: !ruby/object:ActiveRecord::Attribute::FromDatabase name: location value_before_type_cast: 类型: *2 用户名: !ruby/object:ActiveRecord::Attribute::FromDatabase name: username value_before_type_cast: 类型: *2 photo_file_name: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称: photo_file_name value_before_type_cast:类型:*2 值: photo_content_type: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称:photo_content_type value_before_type_cast:类型:*2 值: photo_file_size: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称:photo_file_size value_before_type_cast:类型:*4 值: photo_updated_at: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称:photo_updated_at value_before_type_cast:类型:*13 time_zone: !ruby/object:ActiveRecord::Attribute::FromDatabase name: time_zone value_before_type_cast: 类型: *2 beta_code: !ruby/object:ActiveRecord::Attribute::FromDatabase name: beta_code value_before_type_cast: 类型: *2 account_id: !ruby/object:ActiveRecord::Attribute::From用户名:account_id value_before_type_cast:26 类型:*4 值:26 管理员: !ruby/object:ActiveRecord::Attribute::From用户名:admin value_before_type_cast: true type: *14 value: true logo_file_name: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称: logo_file_name value_before_type_cast:类型:*2 值: logo_content_type: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称:logo_content_type value_before_type_cast:类型:*2 值: logo_file_size: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称:logo_file_size value_before_type_cast:类型:*4 值: logo_updated_at: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称:logo_updated_at value_before_type_cast:类型:*15 公司名称: !ruby/object:ActiveRecord::Attribute::FromDatabase name: company_name value_before_type_cast: 类型: *2 license_number: !ruby/object:ActiveRecord::Attribute::FromDatabase 名称: license_number value_before_type_cast: 类型: *2 spark_id: !ruby/object:ActiveRecord::Attribute::FromDatabase name: spark_id value_before_type_cast: 类型: *2 new_record: false active_record_yaml_version: 0 - !ruby/object:Account raw_attributes: 已删除_at: id: 26 created_at: &16 2016-08-30 00:47:46.181857956 Z updated_at:* 16 名称:full_domain:属性: !ruby/object:ActiveRecord::AttributeSet 属性: !ruby/object:ActiveRecord::LazyAttributeHash 类型:id:*6 名称:*2 created_at: &18 !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter 子类型:*3 updated_at:&19 !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter 子类型:*3 full_domain:*2 deleted_at:&17 !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter 子类型:*3 值:id:名称:created_at:updated_at:full_domain: 已删除_at:additional_types:{}物化:true delegate_hash: deleted_at: !ruby/object:ActiveRecord::Attribute::FromUser name: deleted_at value_before_type_cast:类型:*17 值:id: !ruby/object:ActiveRecord::Attribute::FromUser name: id value_before_type_cast:26 类型:*6 值:26 created_at: !ruby/object:ActiveRecord::Attribute::From用户名: created_at value_before_type_cast: *16 type: *18 value: *16 updated_at: !ruby/object:ActiveRecord::Attribute::From用户名:updated_at value_before_type_cast:*16 类型:*19 值:*16 名称: !ruby/object:ActiveRecord::Attribute::FromDatabase name: name value_before_type_cast: 类型: *2 full_domain: !ruby/object:ActiveRecord::Attribute::FromDatabase name: full_domain value_before_type_cast: 类型: *2 new_record: false active_record_yaml_version: 0
这是我使用@kiddorails 回答时得到的错误日志:
ArgumentError - 未定义的类/模块帐户:
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/class_loader.rb:54:inresolve'find'
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/class_loader.rb:46:in
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/class_loader.rb:28:inload'resolve_class'
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:396:in
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:208:invisit_Psych_Nodes_Mapping'visit'
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/visitor.rb:16:in
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/visitor.rb:6:inaccept'accept'
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:32:in
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:330:inblock in register_empty'register_empty'
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:330:in
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:141:invisit_Psych_Nodes_Sequence'visit'
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/visitor.rb:16:in
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/visitor.rb:6:inaccept'accept'
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:32:in
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:338:inblock in revive_hash'revive_hash'
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:336:in
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:374:inrevive'visit_Psych_Nodes_Mapping'
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:208:in
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/visitor.rb:16:invisit'accept'
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/visitor.rb:6:in
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:32:inaccept'visit_Psych_Nodes_Document'
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:311:in
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/visitor.rb:16:invisit'accept'
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/visitor.rb:6:in
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:32:inaccept'to_ruby'
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych/nodes/node.rb:38:in
/home/abcuser/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/psych.rb:253:inload' app/views/admin/_jobs_table.html.erb:17:inblock in _app_views_admin__jobs_html_erb___466009326523590843_337924780' activerecord (4.2.6) lib/active_record/relation/delegation.rb:46:ineach' app/views/admin/_jobs_table.html.erb:15:in_app_views_admin__jobs_table_html_erb___466009326523590843_337924780' actionview (4.2.6) lib/action_view/template.rb:145:in `block in 渲染'
【问题讨论】: