【问题标题】:Ruby's ruport NoMethodError (undefined method `Table' for main:Object)Ruby 的 ruport NoMethodError(main:Object 的未定义方法“表”)
【发布时间】:2020-10-21 23:11:01
【问题描述】:

Ruport gem 找不到 Table 方法。使用https://ruport.github.io/examples.html 的示例,我们看到了问题。我不确定这是我的配置的错误还是问题。

$ cat foo.csv
name,login time,machine
Gregory,10:00,bittle
Joe,11:45,soda
Jim,9:00,kitten
Joe,12:15,soda
Gregory,5:00,kitten
Joe,12:45,bittle

$ ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin18]

$ gem list ruport

*** LOCAL GEMS ***

ruport (1.7.1)

$ irb
>> require 'ruport'
=> true
>> t = Table("foo.csv")
Traceback (most recent call last):
        4: from /Users/davidhooey/.rvm/rubies/ruby-2.7.1/bin/irb:23:in `<main>'
        3: from /Users/davidhooey/.rvm/rubies/ruby-2.7.1/bin/irb:23:in `load'
        2: from /Users/davidhooey/.rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/irb-1.2.3/exe/irb:11:in `<top (required)>'
        1: from (irb):2
NoMethodError (undefined method `Table' for main:Object)
>>

【问题讨论】:

    标签: ruby ruport


    【解决方案1】:

    我相信这个 Gem 假设您在 Rails 的 ActiveRecord 类的上下文中工作,因此它是 require "ruport/acts_as_reportable" here

    如果它是在 ActiveRecord 子类中而不是在 IRB 中编写的,这将使您的代码完美地工作。您仍然可以使用类table/library,方法是使用其全名Ruport::Data::Table 而不仅仅是Table

    所以你的代码会变成:

    >> require 'ruport'
    => true
    >> t = Ruport::Data::Table("foo.csv")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-23
      • 1970-01-01
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      • 2023-03-30
      相关资源
      最近更新 更多