Ruby 实例变量未传递到块
试图将@server变量传递给bot对象,但它不起作用。我是Ruby新手,不确定我在这里做的不对Ruby 实例变量未传递到块,ruby,Ruby,试图将@server变量传递给bot对象,但它不起作用。我是Ruby新手,不确定我在这里做的不对 require 'cinch' class ConnectIRC attr_accessor :server, :channel, :nick, :realname def initialize(server, channel, nick, realname) @server = server @channel = cha
require 'cinch'
class ConnectIRC
attr_accessor :server, :channel, :nick, :realname
def initialize(server, channel, nick, realname)
@server = server
@channel = channel
@nick = nick
@realname = realname
end
bot = Cinch::Bot.new do
configure do |c|
c.server = @server
end
end
bot.start
end
你可以这样做
require 'cinch'
class ConnectIRC
attr_accessor :server, :channel, :nick, :realname
def initialize(server, channel, nick, realname)
@server = server
@channel = channel
@nick = nick
@realname = realname
end
end
@irc = ConneectIRC.new(server,channel,nick,realname)
bot = Cinch::Bot.new do
configure do |c|
c.server = @irc.server
end
end
bot.start
小建议,将其写为
attr\u accessor:server,:channel,:nick,:realname
以实现冗余。实例变量@server
仅在ConnectIRC
范围内可用class@server在课外不能用。小建议,将该块移动到ConnectionRC类内的方法中,然后它将工作。我应该如何定义服务器的作用域,以便bot方法可以使用它?我不熟悉Rubymovebot
初始化到类中,或者您可以初始化该类的实例并访问该实例上的server
变量