Ссылки на атрибуты объекта из значений массива - PullRequest
0 голосов
/ 01 апреля 2020

Я работаю над решением логической головоломки c и просто хочу сравнить подсказки с несколькими экземплярами значений атрибутов проверки объектов, чтобы определить, являются ли они неизвестными (9), истинными (1) или ложными (0 ), затем обновляется, если необходимо.

class Fruit
  attr_number :number
  attr_accessor :color, :variety
  def initialize(number)
    @number = number
    @color = { "red" => 1, "brown" => 9, "green" => 9 }
    @variety = { "grape" => 9, "apple" => 9, "kiwi" => 0 }
  end
end

@one = Fruit.new(1)
@two = Fruit.new(2)
@produce = [ @one, @two ]
@attribs = [ :color, :variety ]
@clue = [ ["red", "apple"], ["green", "grape"] ]

В привязке pry @ one.color правильно возвращает значение ha sh, с которым я могу легко проверить подсказку,

, но в Вложенный набор циклов над @produce и @ attribs-

@produce.each do |food|
  @attribs.each do |describe|
    print food.describe
  end
end

Я получаю сообщение об ошибке ... Я надеюсь понять, как собрать рабочую ссылку на ha sh. Я знаю, что могу сохранить @array = [@ one.color], и это работает, но это не заставляет мой двигатель logi c работать правильно.

1 Ответ

1 голос
/ 01 апреля 2020

Вы, вероятно, хотите #public_send здесь:

@produce.each do |food|
  @attribs.each do |describe|
    print food.public_send(describe)
  end
end
...