2014-11-18 2 views
0

Оригинальный код:Руфус Синтаксис планировщика ошибок

require 'oci8' 

SCHEDULER.every '10s', :first_in => 0 do |job| 
    begin 
    conn = OCI8.new('apps','apps'); 
    mylist = Hash.new 
    conn.exec("select full_name, count(*) from per_all_people_f 
       where rownum < 6 group by first_name") do |r| 
     mylist[r[0]] = { label: r[0], value: r[1].to_i.to_s } 
    end 
    send_event('emp-list', { items: mylist.values }) 
    conn.logoff 
    rescue Exception => e 
    puts e.message 
    end 
end 

ruby oratest1.rb Запуск дает следующие ошибки:

oratest1.rb:11: syntax error 
     mylist[r[0]] = { label: r[0], value: r[1].to_i.to_s } 
          ^
oratest1.rb:11: syntax error 
     mylist[r[0]] = { label: r[0], value: r[1].to_i.to_s } 
             ^
oratest1.rb:11: syntax error 
oratest1.rb:13: syntax error 
    send_event('emp-list', { items: mylist.values }) 
           ^
oratest1.rb:13: syntax error 
    send_event('emp-list', { items: mylist.values }) 
               ^
oratest1.rb:17: syntax error 
    rescue Exception => e 
     ^
oratest1.rb:21: syntax error 
+0

Какую версию ruby ​​вы используете? –

ответ

0

Вы, вероятно, с помощью Ruby 1.8. Этот синтаксис хэша был включен в 1.9.

Чтобы убедиться, запустите ruby ​​-v и проверьте выход.

0

Если вы используете рубин перед 1.9, вы должны использовать следующий синтаксис для хэшей:

mylist[r[0]] = { :label => r[0], :value => r[1].to_i.to_s } 

синтаксис, который вы используете является действительным в Ruby 1.9 и далее!

Смежные вопросы