Когда вы вызываете account.accountNumber
, он вызывает accountNumber
метод , который вы определили как:
def accountNumber
@accountNumber=5
end
Есть несколько способов это исправить, простойэто:
class BankAccount
attr_accessor :account_number
def initialize(account_number=5)
@account_number = account_number
end
end
Что прекрасно работает:
irb(main):009:0> x = BankAccount.new
=> #<BankAccount:0x00007fae449c5fc8 @account_number=5>
irb(main):010:0> x.account_number = 10
=> 10
irb(main):011:0> y = BankAccount.new
=> #<BankAccount:0x00007fae4495fed0 @account_number=5>
irb(main):012:0> y.account_number
=> 5
irb(main):013:0> z = BankAccount.new
=> #<BankAccount:0x00007fae480066a0 @account_number=5>
irb(main):015:0> z.account_number = 15
=> 15
irb(main):016:0> z.account_number
=> 15
Здесь ТАК ответ, как работает attr_accessor
.