Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 在rails 3.2中访问路由帮助程序_Ruby On Rails 3_Model_Routing - Fatal编程技术网

Ruby on rails 3 在rails 3.2中访问路由帮助程序

Ruby on rails 3 在rails 3.2中访问路由帮助程序,ruby-on-rails-3,model,routing,Ruby On Rails 3,Model,Routing,我正在将rails 2.3应用程序迁移到rails 3.2。 我有一个对象用于管理从不同来源收集的一些统计数据的缓存。 由于收集过程相当长,传统的片段缓存无法完成。 我必须异步地填充缓存。 AsynchCache对象,从Google Analytics获取数据,并将部分内容存储在缓存中 include Rails.application.routes.url_helpers class AsynchCache def self.get_popular_races_from_google

我正在将rails 2.3应用程序迁移到rails 3.2。 我有一个对象用于管理从不同来源收集的一些统计数据的缓存。 由于收集过程相当长,传统的片段缓存无法完成。 我必须异步地填充缓存。 AsynchCache对象,从Google Analytics获取数据,并将部分内容存储在缓存中

include Rails.application.routes.url_helpers

class AsynchCache 

  def self.get_popular_races_from_google_analytics(lang='en')
  # getting info form GA using Garb.
  end

def self.set_popular_races(language=nil)
   av = ActionView::Base.new(Rails.configuration.paths['app/views'])
    language_list = Global.instance.languages_UI.map{|a| a[0]}
    for lang in language.nil? ? language_list : [language]
      output = av.render(
          :partial => "home/popular_races",
          :locals => {:lang => lang}
      )
      Rails.cache.delete("popular_races_#{lang}")
      Rails.cache.write("popular_races_#{lang}",output) 
    end
  end

 def self.get_popular_races(lang='en')
    Rails.cache.read("popular_races_#{lang}")
  end
end
用于显示的部分I如下所示

  • “>tmp\u race.name-%>
当我想显示内容时,我只需使用:

<div id="popular_races"> <%# AsynchCache.get_popular_races(params[:locale])-%> </div>
如果我删除include Rails.application.routes.url\u helpers,我不会得到错误,但当然,我没有访问路由的权限


有没有一种新方法可以从rails 3.2中的模型中获取路由方法?

我遇到了与您相同的问题。我所做的是,我每次都像这样使用它们,而不是包括助手:

Rails.application.routes.url\u helpers.object\u path(…)

stack level too deep
Rails.root: /Users/macbook/Sites/marathons

Application Trace | Framework Trace | Full Trace
actionpack (3.2.1) lib/action_dispatch/middleware/reloader.rb:70