まず、結論から。
| 宣言 | 読み取り | 書き込み |
|---|---|---|
| attr_reader | できる | できない |
| attr_writer | できない | できる |
| attr_accessor | できる | できる |
具体例
attr_reader
class Person
attr_reader :name
def initialize(name)
@name = name
end
end
person = Person.new("Taro")
puts person.name # => "Taro"
person.name = "Jiro" # => エラー!(書き込みできない)
attr_writer
class Person
attr_writer :name
def initialize(name)
@name = name
end
end
person = Person.new("Taro")
puts person.name # => エラー!(読み取りできない)
person.name = "Jiro" # => OK!
まとめ
Railsで使うならattr_accessorになっちゃうから、あまり使わないよね。
い