Мне кажется, я понимаю, почему это происходит, но я не уверен, как решить проблему.
Я опубликую соответствующий код ниже.
class CoveragesController < ApplicationController
def grab
url = {
"cnn" => "http://www.cnn.com/",
"cnn_politics" => "http://www.cnn.com/POLITICS/",
}
url.each do |key, value|
data = urlToString(value)
appearances = countAppearances(data)
@coverage = Coverage.create(
:media => key,
:url => value,
:content => data,
:obama => appearances["obama"],
)
end
end
end
То, что делает метод захвата, не так важно.Это просто метод, который использует несколько других методов для подсчета количества раз, когда «Обама» упоминался на веб-сайте CNN.
В консоли rails я пытался запустить Coverage.grab.Это сообщение об ошибке, которое я получил.
1.9.3-p0 :003 > Coverage.grab
NoMethodError: undefined method `grab' for #<Class:0x007f9a5d813bf8>
from /Users/jasonkim/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.3/lib/active_record/base.rb:1088:in `method_missing'
from (irb):3
from /Users/jasonkim/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.1.3/lib/rails/commands/console.rb:45:in `start'
from /Users/jasonkim/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.1.3/lib/rails/commands/console.rb:8:in `start'
from /Users/jasonkim/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.1.3/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Coverage.new, кстати, прекрасно работает.
Кроме того, когда я настраиваю route.rb и создаю адрес, который запускает метод захвата, он также работает нормально.
Я предполагаю, что когда я запускаю Coverage.grab, где нет ни одного экземпляра Coverage, для меня, чтобы запустить метод "захватить".
Есть идеи, как решить эту проблему?