Как изменить значение переменной класса Ruby - PullRequest
1 голос
/ 27 июля 2011

Я новичок в Ruby и хочу сделать следующее:

class WS< ActiveRecord::Base
  @@SequenceNumber = 0

  def self.oper1
    @@SequenceNumber = 2
  end

  def self.oper2
   @@SequenceNumber += 1 
   puts @@SequenceNumber.to_s
  end

  def self.oper3
   puts @@SequenceNumber.to_s
  end
end

Если я сделаю что-то вроде:

WS.oper1
WS.oper2
WS.oper3

, я получу следующий вывод:1007 *

3
2

Почему мой @@ SequenceNumber + = 1 не работает?Что я делаю не так?

Спасибо.

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Работает просто отлично:

class WS
  @@sequence_number = 0

  def self.oper1
    @@sequence_number = 2
  end

  def self.oper2
   puts @@sequence_number += 1
  end

  def self.oper3
   puts @@sequence_number
  end
end

WS.oper3
# 0

WS.oper1
WS.oper2
# 3

WS.oper3
# 3

[Примечание: я немного позволил Rubyfying ваш код.]

0 голосов
/ 27 июля 2011

Это работает с ожидаемым:

enter image description here

...