Ruby Mixin Неопределенный метод - PullRequest
1 голос
/ 23 февраля 2012

Итак, я знаю, что есть простая ошибка, но я просто не могу ее обнаружить.Я использую Модули / Mixins впервые, и любая помощь будет высоко ценится.Я продолжаю получать эту ошибку:

undefined method `this_is' for Value:Module (NoMethodError)

Но похоже, что метод есть ... Вот мой модуль и классы ...

module Value
  def this_is
    puts "#{self.players_hand} is the players hand"
  end
end

require './value.rb'

class Player
  include Value
  attr_accessor :players_hand

  def initialize
    @players_hand = 0
  end

  def value_is
    Value.this_is
  end
end

require './player.rb'

class Game

  def initialize
    @player = Player.new
  end

  def start
    puts @player.players_hand
    puts @player.value_is
  end
end

game = Game.new
game.start

1 Ответ

1 голос
/ 23 февраля 2012

Когда вы include Value внутри класса Player, вы делаете методы модуля Value частью класса Player, поэтому метод this_is не является пространством имен.Зная это, нам нужно изменить этот метод:

def value_is
  Value.this_is
end

На:

def value_is
  this_is
end
...