设置config.action_controller.perform_caching = true在rails 3.2.1 app中断开路由

时间:2012-02-08 18:07:55

标签: ruby-on-rails-3

我在Rails 3.2.1中遇到了极其奇怪的行为

我有一些没有show动作的资源。 例如:

resources :homes, :except => [:show]

在我的控制器中我说:

  def update
    @domain = Domain.where(:domain => request.domain.split('.').first).first    
    @home = Home.find(params[:id])
    if @home.update_attributes(params[:home])
      expire_page :action => :index
      redirect_to(admin_path(@domain), :notice => "Updated.") 
    else
      render :action => "edit"
    end
  end

并且所有人都处于发展阶段。

但是在生产中,尽管有明显的redirect_to,但一直试图重定向到(不存在的)show动作。好像这个方法完全被忽略了。事实上,我可以尝试重定向到应用程序中的任何路径,它将被忽略。一旦我在production.rb中将perform_caching设置为false,路由就会再次按预期运行!任何想法为什么会发生这种情况以及如何让它停止!?显然我可以关闭缓存,但出于性能原因,我需要缓存页面。

感谢阅读。

0 个答案:

没有答案