#ruby-on-rails-3 #google-analytics
#ruby-on-rails-3 #google-analytics
Вопрос:
У меня есть модель Garb:
class Visits
extend Garb::Model
metrics :visits, :new_visits, :pageviews
dimensions :month, :hostname, :network_domain, :country, :region, :source
end
И у меня есть эта строка в моем контроллере:
for visit in Visits.results(profile, :start_date => (Date.today-numdays), :filters => { :hostname.eql => "#{@brand.subdomain}.mysite.com" })
Это сработало потрясающе. Но внезапно, хотя ни один из фактических кодов не был изменен:
NoMethodError in AnalyticsController#index
undefined method `eql' for :hostname:Symbol
Что может быть причиной этого?
Ответ №1:
По какой-то причине garb / lib / support.rb больше не загружается. Вы поместили :require => false
в строку garb gem в Gemfile?
Комментарии:
1. Нет, это просто «драгоценный камень»garb», может ли где-то быть какое-то столкновение с пространством имен?
2. Возможно, есть какой-то другой драгоценный камень, который изменяет Symbol. Например, Mongoid делает это.
3. Что возвращает (:foo.methods — Class.methods)?
Ответ №2:
Вы установили right_http_connection-1.3.0 gem? Это приведет к тому, что garb / lib / support.rb не будет загружен, если вам требуется ‘right_http_connection’ перед ‘garb’. Если это возможно, вы могли бы исправить это, установив right_http_connection в нижнем правом углу, например right_http_connection-1.2.4.
В конце концов, вы можете использовать command
find /Your/gems/installed/dir -name "*.rb" -print | xargs grep '<support>' | grep 'require'
чтобы найти, из-за каких файлов ваш garb / lib / support.rb больше не загружался.
Эта ссылка http://kayakjang.github.com/2011/05/27/garb.html может быть полезно для вас в решении этой проблемы.
Ответ №3:
Я исправил это, вырезав и вставив содержимое garb / lib /support.rb в файл environment.rb. Не идеально, я знаю. Но я не знаю, какой символ gem update модифицировал, и это работает. Спасибо Роману за то, что указал мне правильное направление.