0

ルートがあるsinatraアプリケーション(sinatra.rb)に1つのファイルのみを使用します。

get '/ajax2?' do
  my_function()
end

別のrubyスクリプト(cron.rb)my_function()から呼び出して、すべてのパラメーターを渡すことはできますか?では、ブラウザからアクセスした場合、このルートにあるコードはすべて同じように実行されますか?

cronジョブから呼び出す必要があります。

  • ルビー1.8.7(2010-08-16パッチレベル302)[i386-mingw32]
  • シナトラ(1.3.2)
  • sinatra-advanced-routes(0.5.1)
  • sinatra-reloader(0.5.0)
4

1 に答える 1

1

更新:

my_module.rbのように、必要なのはモジュールだけです。

module MyModule
  def my_function
  end
end

次に、あなたのapp.rbで:

require './my_module.rb'
helpers MyModule

そのモジュールを cron.rb に要求して含めることができます


私があなたの質問に正しく従うなら (私にはわからない)、あなたのコードを拡張機能に引き出すと、ディレクトリ構造は次のようになります。

myapp/
|-lib/
  |-my_extension.rb
|-app.rb

次にmy_extension.rbで:

module Sinatra
  module MyExtension
    def self.registered(app)
      app.get '/ajax2?' do
        "hallo"
      end
    end
  end
  register MyExtension
end

app.rbで必要なのは次のとおりです。

require './lib/my_extension.rb'

それが最初のステップです。次に、拡張機能の内容を gem に移動します。これにより、sinatra アプリケーションの Gemfile で gem を要求できます。

于 2012-05-16T05:06:44.057 に答える