1

プロジェクトに取り組んでいて、始められなくなった...仕様からの説明は次のとおりです。

describe Temperature do
describe "can be constructed with an options hash" do
describe "in degrees fahrenheit" do
  it "at 50 degrees" do
    Temperature.new(:f => 50).in_fahrenheit.should == 50
  end

しばらくこれにこだわって、私の問題は議論を得ることに関係していると思いますが、その方法を理解することはできません。私のコードは、50ではなく「nil」という結果をもたらしています。

 class Temperature
    attr_accessor :f

 def in_fahrenheit
 @f
 end


 end
4

1 に答える 1

2

実際、:fどこでもアクセサに値を設定しているわけではありません。このために独自のコンストラクターを定義する必要があります。

class Temperature

  def initialize(args)
    self.f = args[:f]
  end

  attr_accessor :f
  def in_fahrenheit
    f
  end
end


t = Temperature.new(:f => 50)

t.f # => 50
t.in_fahrenheit # => 50
于 2013-02-12T01:58:15.193 に答える