我有一个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
导致这种情况的原因是什么?
答案 0 :(得分:1)
由于某种原因,不再加载garb / lib / support.rb.你把:require => false
放到了Gemfile中的garb gem行吗?
答案 1 :(得分:0)
我通过将garb / lib / support.rb的内容剪切并粘贴到environment.rb文件中来解决此问题。我知道,不理想。但我不知道什么宝石更新修改了Symbol,这个有效。罗马的道具指向我正确的方向。
答案 2 :(得分:0)
你安装了right_http_connection-1.3.0 gem吗?如果你在'garb'之前需要'right_http_connection',它将导致不加载garb / lib / support.rb。如果你可以通过安装一个较低的right_http_connection来解决这个问题,例如right_http_connection-1.2.4。
毕竟你可以使用命令
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可能对您有所帮助。