Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 实例变量未传递到块_Ruby - Fatal编程技术网

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

试图将@server变量传递给bot对象,但它不起作用。我是Ruby新手,不确定我在这里做的不对

  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方法可以使用它?我不熟悉Rubymove
bot
初始化到类中,或者您可以初始化该类的实例并访问该实例上的
server
变量