私は今朝初めてセルロイドの宝石を使い始めました。私はこれに続くRailscasts tutorialと物事を把握しようとしています。セルロイド0.17.3予期しない「未定義のメソッド」のエラーを与える
私は"SomeClass"
と呼ばれるクラスを持っていますが、そのメソッドは1つしかありません。ここでは、コードです:私はクラスの新しいインスタンスを作成して(すなわち"assholify!"
バタンと)そのメソッドを呼び出すと
require 'celluloid'
class SomeClass
include Celluloid
def initialize(name)
@name = name
end
def assholify()
puts "#{@name} has become an ASSHOLE."
end
end
、私はundefined method 'assholify!'
、エラーを取得しています。しかし、セルロイドは、メソッドを非同期的にトリガすることになっています。だからここに私は、メソッドを呼び出しています方法です。ここで
names = ['John', 'Tom', 'Harry']
names.each do |name|
n = SomeClass.new name
n.assholify!
end
は、エラーの完全なバックトレースです:
I, [2016-09-09T11:28:02.488618 #3682] INFO -- : Celluloid 0.17.3 is running in BACKPORTED mode. [ http://git.io/vJf3J ]
/home/railsdev/.rvm/gems/ruby-2.3.1/gems/celluloid-0.17.3/lib/celluloid/calls.rb:42:in `rescue in check': undefined method `assholify!' for #<SomeClass:0x10897dc> (NoMethodError)
from /home/railsdev/.rvm/gems/ruby-2.3.1/gems/celluloid-0.17.3/lib/celluloid/calls.rb:39:in `check'
from /home/railsdev/.rvm/gems/ruby-2.3.1/gems/celluloid-0.17.3/lib/celluloid/calls.rb:26:in `dispatch'
from /home/railsdev/.rvm/gems/ruby-2.3.1/gems/celluloid-0.17.3/lib/celluloid/call/sync.rb:16:in `dispatch'
from /home/railsdev/.rvm/gems/ruby-2.3.1/gems/celluloid-0.17.3/lib/celluloid/cell.rb:50:in `block in dispatch'
from /home/railsdev/.rvm/gems/ruby-2.3.1/gems/celluloid-0.17.3/lib/celluloid/cell.rb:76:in `block in task'
from /home/railsdev/.rvm/gems/ruby-2.3.1/gems/celluloid-0.17.3/lib/celluloid/actor.rb:339:in `block in task'
from /home/railsdev/.rvm/gems/ruby-2.3.1/gems/celluloid-0.17.3/lib/celluloid/task.rb:44:in `block in initialize'
from /home/railsdev/.rvm/gems/ruby-2.3.1/gems/celluloid-0.17.3/lib/celluloid/task/fibered.rb:14:in `block in create'
from (celluloid):0:in `remote procedure call'
from /home/railsdev/.rvm/gems/ruby-2.3.1/gems/celluloid-0.17.3/lib/celluloid/call/sync.rb:45:in `value'
from /home/railsdev/.rvm/gems/ruby-2.3.1/gems/celluloid-0.17.3/lib/celluloid/proxy/sync.rb:22:in `method_missing'
from some_class.rb:18:in `block in <main>'
from some_class.rb:16:in `each'
from some_class.rb:16:in `<main>'
は、なぜ私はこのエラーを取得していますか?関数を呼び出すのは正しい方法ですか?また、どうすればCelluloid 0.17.3 is running in BACKPORTED mode.
の警告を取り除くことができますか?