0

In Ruby, instance variables aren't truly "private"

You can access and modify an object's instance variables using instance_variable_get and instance_variable_set method.

Example:

class C
  def initialize
    self.x = 2
  end

  private
  attr_accessor :x
end

c = C.new

#NoMethodError: private methods `x` and `x=`called
c.x = 4
puts c.x

#But this is alright
c.instance_variable_set :@x, 4
puts c.instance_variable_get :@x # => 4

All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí