1

私のコントローラーで、rubyスクリプトを実行しようとしています。

def mymethod
  variable = `ruby /home/user/Test.rb`
  exec variable
  raise "Failed: #{variable}" unless variable.blank?
end

Test.rbスクリプトが上記のパスに存在しますが、それでもエラーが発生します。

Errno::ENOENT (No such file or directory - )

Test.rbの内容:

require 'rubygems'
require 'net/smtp'
require 'pp'
require 'mysql'
require 'yaml'
message = "MESSAGE_END
G Name <MyEmailAddress>
To: G Name <MyEmailAddress>
Subject: SMTP e-mail test
This is a test mail"
Net::SMTP.start('webserver') do |smtp|
smtp.send_message message, 'EmailAddress', 'EmailAddress'
end

このスクリプトを手動で実行したとき。期待通りにメールを送信します。

4

1 に答える 1

1

必ず

require 'open-uri'

それで、

require '/home/user/Test.rb'  
require 'open-uri'  # sometimes without this line, we get the exact error message in ruby on rails..

(また)

サーバーを再起動してみてください。場合によっては修正してください。

于 2013-02-11T15:18:45.970 に答える