我正在使用 Rails 3.2.0 和 Devise 2.0.0.rc2。当我运行规范时,我收到一条弃用警告,当我正常启动 Rails 服务器时不会看到该警告。
$ rake
.DEPRECATION WARNING: Layout found at "devise" for
DeviseController but parent controller set layout to :layout_by_resource.
Please explicitly set your layout to "devise" or
set it to nil to force a dynamic lookup.
(called from realtime at
/Users/foo/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/benchmark.rb:310)
My /app/controllers/application_controller.rb
好像:
class ApplicationController < ActionController::Base
protect_from_forgery
layout :layout_by_resource
protected
def layout_by_resource
if devise_controller?
if resource_name == :agent && action_name == 'new'
nil
elsif resource_name == :admin && action_name == 'new'
nil
else
'devise'
end
else
'application'
end
end
end
知道为什么我会看到这些警告吗?
如果您想删除这些消息,最简单的解决方案实际上是将您的设计布局模板重命名为devise.html.erb
,f.e.到devise_layout.html.erb
。当然你要调整你的layout_by_resource
函数来匹配新名称。
这将停止测试中的弃用消息并使它们再次可读。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)