0

フォルダー内のメソッドinstance variableで定義されたにアクセスすることは可能ですか? 私の lib フォルダー内のクラスを検討してくださいcontrollerlibDoSomething

# inside /lib folder
class DoSomething

    def fun
        puts @some_text
    end

end


class SampleController < ApplicationController

  def index
    @some_text = "ha ha ha"
    DoSomething.new().fun
  end

end  

これは何も印刷しません。メソッドに値を渡すことはできますが、それなしでそれを行うことは可能ですか?

4

1 に答える 1

2

直接アクセスすることはできませんが、DoSomething の初期化子に渡すことができます。

# inside /lib folder
class DoSomething

  def initialize(some_text)
    @some_text = some_text
  end

  def fun
    puts @some_text
  end
end


class SampleController < ApplicationController

  def index
    @some_text = "ha ha ha"
    DoSomething.new(@some_text).fun
  end
end 
于 2012-10-04T16:31:20.117 に答える