我在rails脚本上有一个ruby,我通过发出命令来运行: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环境没有正确加载。我在代码中缺少什么或启动应用程序的最佳方式是什么?
答案 0 :(得分:0)
我不确定它是否可以解决您的问题,但这是一个更漂亮的语法
require File.expand_path(File.dirname(__FILE__) + '/../config/environment')
为确保您的环境已加载,请在需要之后尝试Bin
。