Использование класса для создания класса моей песни

Я прохожу трудный путь по изучению Руби - ex40

В настоящее время код работает нормально. Это не моя проблема. Моя проблема - каждый раз, когда я добавляю новую песню. А) Мне нужно создать переменную экземпляра внутри метода инициализации. Б) Затем я должен дать ему attr_reader.

Что я знаю, если смогу А) не продолжать создавать новые переменные экземпляра, а просто переменные внутри класса Song. Б) Не нужно создавать attr_reader для каждой переменной.

class Song
  def initialize()
    @jcole_lighter = "Come here, I\'m about to take you higher"
    @hold_on_drake = ["Cause you\'re a good girl and you know it",
                          "You act so different around me",
                          "Cause you\'re a good girl and you know it"]
  end


  def sing_me_a_song()
        for line in initialize
            puts line
        end
    end

  attr_reader :jcole_lighter
  attr_reader :hold_on_drake

end


thing = Song.new
puts thing.jcole_lighter()
puts "-"*10
thing= Song.new
puts thing.hold_on_drake()

1 ответ

Решение

Проверьте это для хорошего объяснения attr_reader, attr_writer, а также attr_accessor,

И проверьте это, чтобы узнать, как добавить параметры в конструктор.

Вы могли бы иметь :attr_accessor :artists внутри Song И в initialize сделай это:

@artists = Array.new

Тогда вы можете иметь метод add:

def add(artist)
  @artists << artist
end

Просто идея. Всегда рад помочь фанату Дрейка.

Другие вопросы по тегам