0

モデルで「therubyracer」を使用しており、モデルの上部に次のように要求しています。

require 'v8'
class Thing
  def self.ctx; @@ctx ||= V8::Context.new; end;

  def self.eval(script); ctx.eval(script); end;
end

ただし、断続的に取得します:

NameError - uninitialized constant Thing::V8: 
/app/thing.rb:3:in `ctx'

ローカルの Padrino サーバーを介してリクエストをテストするとき、明らかに Thing のコードを変更した後です。これは padrino サーバーを再起動することで修正されます。他の場所で v8 を要求するとこの問題が解決すると思いますが、正しい場所はどこですか?

4

2 に答える 2

2

これは、Padrino リローダーがファイルをリロードするときに混乱しthing.rb、Ruby が名前空間を検索することが原因V8Thingようです。

接頭辞V8を使用して最上位にあることを明示的に指定してみてください:::

def self.ctx; @@ctx ||= ::V8::Context.new; end;
于 2013-01-28T22:23:46.000 に答える
0

Gemfile に追加すれば、好きな場所に配置できます。追加しましたか?

ありがとう!

于 2013-01-28T19:22:43.590 に答える