Ruby`除非`不工作

时间:2015-06-25 17:58:41

标签: mysql ruby

我目前正在学习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

我写的代码中是否有错误?

1 个答案:

答案 0 :(得分:0)

我认为您对语法感到困惑。如果你想使用上面定义的方法,你应该这样:

@con.query("INSERT INTO channels (name, timestamp) VALUES ('#{channel}', '#{Time.now.to_i}')") unless exists?(channel)