ActionView::MissingTemplate:如果访问 :text 页面而没有在 Rails 中显式添加 .txt 到 url 4

ActionView::MissingTemplate: if visit a :text page without explicit .txt added to url in Rails 4

在 Rails 4.0 中,我如何指定到 :text 页面的路由,以便我可以在没有明确添加格式的情况下访问该页面?

将 Rails 3.2 应用程序升级到 Rails 4,当我尝试访问文本页面时路由失败(无论是在 Capybara 还是 运行 应用程序在开发盒上)

# in routes.rb
get 'blank_page' => "home#blank_page", :format => :text

# when rake routes:
blank_page GET   /blank_page(.:format)   home#blank_page

# in test_request.rb (Capybara 2.5.0, Rails 4.0, Rspec 3.3.0)
visit "/blank_page.txt" # works
visit "/blank_page"     # FAILS: ActionView::MissingTemplate:
visit blank_page_path   # FAILS: ActionView::MissingTemplate:

运行 本地应用程序我看到同样的事情,访问本地主机页面 /blank_page 失败但 /blank_page.txt 有效

我是否错误地声明了路由和默认 :text 格式?

找到了,但我没有删除问题,而是发布了一个答案,以防对其他人有帮助。

看起来像 Rails 4 你必须在路线上使用 :defaults

get 'blank_page' => "home#blank_page", :defaults => { :format => :text }