在“_main”中:nil:NilClass 的未定义方法“运行”(NoMethodError)
in `_main': undefined method `run' for nil:NilClass (NoMethodError)
我无法在名为 MySqliteRequest 的 class 中调用 运行 方法。当我调用该方法时,错误消失了。
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 在 Rails 上的工作方式。
我无法在名为 MySqliteRequest 的 class 中调用 运行 方法。当我调用该方法时,错误消失了。
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 在 Rails 上的工作方式。