我无法在名为 MySqliteRequest 的类中调用 run 方法。当我调用该方法时,错误消失了。
in `main': undefined method `run' for nil:NilClass (NoMethodError)
这里有一些方法
MySqliteRequest
class MySqliteRequest
def print
puts "Type Of Request #{@type_of_request}"
end
def run
print
end
def _setTypeOfRequest(new_type)
if(@type_of_request == :none or @type_of_request == new_type)
@type_of_request = new_type
else
raise "Invalid: type of request already set #{@type_of_request} (new type => #{new_type}"
end
end
end
以及主要方法↓
def _main()
request = MySqliteRequest.new
request = request.from('nba_player_data.csv')
request = request.select('name')
request = request.where('birth_state', 'Indiana')
request.run
end
_main()
在调用
request.run
时,request
的值为 nil
。这就是您看到错误的原因。nil
值分配给 request
变量。
从你格式化事物的方式来看,你显然来自另一种不是 Ruby 的语言(也许是某种类型的 C?)。它将帮助您更加熟悉 Ruby 及其习惯用法。然而,据我所知,你想做这样的事情:
def _main
request = MySqliteRequest.new
request.from('nba_player_data.csv')
request.select('name')
request.where('birth_state', 'Indiana')
request.run
end
_main()
这假设您还在您的
MySqliteRequest
对象或模型上定义了(并且在某些情况下可能覆盖)这些方法:from
select
where
但是,请注意,您的处理方式完全违背了 Ruby 和 Ruby on Rails 的设计工作方式。