0

次のコマンドを発行して実行する ruby​​ on rails スクリプトがあります: sudo ruby​​ script/mailman_server このファイルの内容は次のとおりです。

#!/usr/bin/env ruby
require "rubygems"
require "bundler/setup"
require "mailman"
require "rb-inotify"
require "#{File.dirname __FILE__}/../config/environment"

Mailman.config.maildir = '/var/mail'

Mailman::Application.run do
    default do
        begin
            # call a model
            Bin.receive_mail(message)
        end
    end
end

次のようなエラーが表示されます。

E, [2013-03-15T02:06:39.555346 #6351] ERROR -- : uninitialized constant Bin
/var/www/beebin/script/mailman_server:14

Bin はモデルであり、 receive_mail() はそのモデルの関数です。スクリプトがモデルを認識できないのはなぜですか?

Rails 環境が正しくロードされていないように感じます。コードに欠けているもの、またはアプリを起動する最良の方法は何ですか?

4

1 に答える 1

0

問題が解決するかどうかはわかりませんが、これはよりきれいな構文です

require File.expand_path(File.dirname(__FILE__) + '/../config/environment')

環境がロードされていることを確認するにはBin、require の直後に実行してみてください。

于 2013-03-15T16:43:51.590 に答える