[英]Thin error message
當我運行ruby filename.rb
,瘦網絡服務器啟動,但是當我嘗試在localhost:4567上查看(Sinatra)應用程序時,出現此錯誤消息。 谷歌搜索沒有發現任何東西。 有誰知道我會怎么做才能克服這個問題?
gems/eventmachine-0.12.10/lib/em/connection.rb:39:in `block in new': undefined method `associate_callback_target' for #<Thin::Connection:0x00000100fc7500> (NoMethodError)
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/eventmachine-0.12.10/lib/em/connection.rb:36:in `instance_eval'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/eventmachine-0.12.10/lib/em/connection.rb:36:in `new'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/eventmachine-0.12.10/lib/eventmachine.rb:1430:in `event_callback'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/eventmachine-0.12.10/lib/pr_eventmachine.rb:815:in `block in eventable_read'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/eventmachine-0.12.10/lib/pr_eventmachine.rb:812:in `times'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/eventmachine-0.12.10/lib/pr_eventmachine.rb:812:in `eventable_read'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/eventmachine-0.12.10/lib/pr_eventmachine.rb:369:in `block in crank_selectables'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/eventmachine-0.12.10/lib/pr_eventmachine.rb:369:in `each'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/eventmachine-0.12.10/lib/pr_eventmachine.rb:369:in `crank_selectables'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/eventmachine-0.12.10/lib/pr_eventmachine.rb:324:in `block in run'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/eventmachine-0.12.10/lib/pr_eventmachine.rb:318:in `loop'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/eventmachine-0.12.10/lib/pr_eventmachine.rb:318:in `run'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/eventmachine-0.12.10/lib/pr_eventmachine.rb:64:in `run_machine'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/thin-1.4.1/lib/thin/backends/base.rb:63:in `start'
from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/thin-1.4.1/lib/thin/server.rb:159:in `start'
from /Users/mm/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/rack-1.4.1/lib/rack/handler/thin.rb:13:in `run'
from /Users/mm/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/sinatra-1.3.3/lib/sinatra/base.rb:1350:in `run!'
from /Users/mm/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/sinatra-1.3.3/lib/sinatra/main.rb:25:in `block in <module:Sinatra>'
該代碼來自《用Ruby克隆Internet應用程序》一書。 它的每個演示應用程序都在發生...
路線代碼
get '/' do haml :index end
post '/' do
uri = URI::parse(params[:original])
custom = params[:custom].empty? ? nil : params[:custom]
raise "Invalid URL" unless uri.kind_of? URI::HTTP or uri.kind_of? URI::HTTPS
@link = Link.shorten(params[:original], custom)
haml :index
end
['/info/:short_url', '/info/:short_url/:num_of_days', '/info/:short_url/:num_of_days/:map'].each do |path|
get path do
@link = Link.first(:identifier => params[:short_url])
raise 'This link is not defined yet' unless @link
@num_of_days = (params[:num_of_days] || 15).to_i
@count_days_bar = Visit.count_days_bar(params[:short_url], @num_of_days)
chart = Visit.count_country_chart(params[:short_url], params[:map] || 'world')
@count_country_map = chart[:map]
@count_country_bar = chart[:bar]
haml :info
end
end
get '/:short_url' do
link = Link.first(:identifier => params[:short_url])
link.visits << Visit.create(:ip => get_remote_ip(env))
link.save
redirect link.url.original, 301
end
error do haml :index end
def get_remote_ip(env)
if addr = env['HTTP_X_FORWARDED_FOR']
addr.split(',').first.strip
else
env['REMOTE_ADDR']
end
end
我是《 用Ruby克隆Internet應用程序》一書的作者。 我嘗試在GitHub存儲庫中運行代碼,並且由於進行了一些更改(由於Sinatra的更改),我可以成功運行它。 也許您可以嘗試Prakash Murthy給出的答案,以升級到EventMachine 1.0.0,但是我正在運行與您相同的版本(0.12.10),這不會給我帶來任何問題。
如果您直接給我發送電子郵件,我們可以解決(並稍后更新Stack Overflow)。
我在使用Ruby 1.9.2時遇到了這個問題。 兩個版本的Eventmachine(0.12.10和1.0.x)都出現了此問題。 遵循鏈接的Github問題中的技巧之后,我切換到Ruby 2.1.1並重新打包。 安裝了Eventmachine 1.0.3,問題消失了。
(這整個過程涉及到我很多ving牛工作,涉及到將Mac更新到Mavericks,吹走許多廢棄的庫以及重新安裝Xcode和Homebrew-希望對其他人來說更簡單。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.