【发布时间】:2011-09-03 05:48:33
【问题描述】:
我的 Rails 应用中有三种布局。我发现它们在我的开发机器上都完全按照预期工作,但是当我部署到生产环境时,视图以错误的布局呈现。
例如,我有这个……
class AgendasController < ApplicationController
layout('main')
def show
@agenda = Agenda.find(params[:id])
render( :action => :show, :layout => 'agenda')
end
# etc ...
end
我希望所有视图都以“主”布局呈现,但 show 以“议程”布局呈现。
正如我所说,它在开发中运行良好,但在生产中,show 视图以“主”布局而不是预期的“议程”布局呈现。
我也尝试过添加...
layout('main', :except => :show)
但这无济于事——同样的结果。
我正在使用 Rails 2.3.11 和乘客
我在生产中的 gem 环境以防万一...
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.5
- RUBY VERSION: 1.8.7 (2009-12-24 patchlevel 248) [i686-linux]
- INSTALLATION DIRECTORY: /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /opt/ruby-enterprise-1.8.7-2010.01/bin/ruby
- EXECUTABLE DIRECTORY: /opt/ruby-enterprise-1.8.7-2010.01/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8
- /home/emicha/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://gems.rubyforge.org/
我以前从未见过这个问题,服务器上的所有其他应用程序都运行良好。
更新
生产日志声称它使用的是“议程”布局,但浏览器中显示的是“主要”布局。我可以通过外观和查看 HTML 源代码来判断——其中包含的 JS 文件不在“议程”布局中。
Processing AgendasController#show (for 10.1.1.136 at 2011-09-02 13:22:00) [GET]
Parameters: {"action"=>"show", "id"=>"1682", "controller"=>"agendas"}
Rendering template within layouts/agenda
Rendering agendas/show
【问题讨论】:
-
您能否发布生产日志以显示它决定使用哪种布局?
-
是的,我认为这在某种程度上与缓存有关。
标签: ruby-on-rails ruby