Я на самом деле использую Rails 3.0, так что это rails console
против rails runner try.rb
. Следующий код хорошо работает в консоли, но не как скрипт с runner. Мне нужен бегун (вместо использования ruby try.rb
), потому что есть некоторый код ActiveRecord для проекта.
Обновление: Я не смог запустить его внутри myproj\lib\tasks\
(когда текущий каталог myproj\lib\tasks\
), но могу запустить его внутри myproj
, поэтому возникает вопрос, почему это будет работать в myproj
?
http_header = {'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.53 Safari/534.3'}
url = URI.parse('http://www.google.com/')
response = Net::HTTP.start(url.host, url.port) do |http|
http.get(url.path, http_header)
end
puts response.body
Код ошибки:
c:\ror\proj\lib\tasks>rails runner try.rb
c:/ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.0/lib/rails/commands/runner.rb:50:in `eval': no method name given (ArgumentError)
from c:/ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.0/lib/rails/commands/runner.rb:50:in `eval'
from c:/ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.0/lib/rails/commands/runner.rb:50:in `<top (required)>'
from c:/ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.0/lib/rails/commands.rb:39:in `require'
from c:/ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.0/lib/rails/commands.rb:39:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'