我目前正在学习Ruby,我编写了以下代码,但是在运行时会导致错误。
如果数据库中尚未存在通道(通过exists?
方法检查),则只会将通道插入到数据库中。
def exists?(channel)
rs = @con.query("SELECT * FROM channels WHERE name = #{channel}")
return true unless rs.empty?
end
channels.each do |channel|
@con.query("INSERT INTO channels (name, timestamp) VALUES ('#{channel}', '#{Time.now.to_i}')") unless channel.exists?
包含此代码后,会显示以下错误消息:
未定义的方法`存在?' for“#channel1”:String
我写的代码中是否有错误?
答案 0 :(得分:0)
我认为您对语法感到困惑。如果你想使用上面定义的方法,你应该这样:
@con.query("INSERT INTO channels (name, timestamp) VALUES ('#{channel}', '#{Time.now.to_i}')") unless exists?(channel)