How do I print out the contents of an object in Rails for easy debugging?

前端 未结 8 1152
感情败类
感情败类 2020-12-04 18:32

I think I\'m trying to get the PHP equivalent of print_r() (print human-readable); at present the raw output is:

ActiveRecord::Relation:0x10355d         


        
8条回答
  •  臣服心动
    2020-12-04 19:15

    In Rails you can print the result in the View by using the debug' Helper ActionView::Helpers::DebugHelper

    #app/view/controllers/post_controller.rb
    def index
     @posts = Post.all
    end
    
    #app/view/posts/index.html.erb
    <%= debug(@posts) %>
    
    #start your server
    rails -s
    

    results (in browser)

    - !ruby/object:Post
      raw_attributes:
        id: 2
        title: My Second Post
        body: Welcome!  This is another example post
        published_at: '2015-10-19 23:00:43.469520'
        created_at: '2015-10-20 00:00:43.470739'
        updated_at: '2015-10-20 00:00:43.470739'
      attributes: !ruby/object:ActiveRecord::AttributeSet
        attributes: !ruby/object:ActiveRecord::LazyAttributeHash
          types: &5
            id: &2 !ruby/object:ActiveRecord::Type::Integer
              precision: 
              scale: 
              limit: 
              range: !ruby/range
                begin: -2147483648
                end: 2147483648
                excl: true
            title: &3 !ruby/object:ActiveRecord::Type::String
              precision: 
              scale: 
              limit: 
            body: &4 !ruby/object:ActiveRecord::Type::Text
              precision: 
              scale: 
              limit: 
            published_at: !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter
              subtype: &1 !ruby/object:ActiveRecord::Type::DateTime
                precision: 
                scale: 
                limit: 
            created_at: !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter
              subtype: *1
            updated_at: !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter
              subtype: *1
    

提交回复
热议问题