rails xml.builder缺少模板错误

时间:2013-11-27 01:15:03

标签: ruby-on-rails sitemap xml-builder

错误: 模板缺失

缺少模板杂项/站点地图,应用程序/站点地图{:locale => [:en],:formats => [:xml],:handlers => [:erb,:builder]}。搜索:*“/ Users / yliu / Google Drive / ruby​​ projects / Blog / lenswish / app / views”*“/usr/local/rvm/gems/ruby-1.9.3-p194/bundler/gems/twitter-bootstrap -rails-4b8a511e6518 / app / views“*”/usr/local/rvm/gems/ruby-1.9.3-p194/gems/devise-3.1.0/app/views“

rake routes:

GET      /sitemap.xml(.:format)                 miscellaneous#sitemap {:format=>"xml"}

routes.rb中:

get "sitemap.xml", :to => "miscellaneous#sitemap", defaults: { format: "xml" }

控制器:

class MiscellaneousController < ApplicationController
  def sitemap
    @card_templates = CardTemplate.all
    respond_to do |format|
      format.xml
    end
  end
end

模板位置: 应用程序/视图/杂项/ sitemap.xml.builder

模板sitemap.xml.builder中的内容:

# Sitemaps 0.9 XML format: http://www.sitemaps.org/protocol.php
xml.instruct!
xml.urlset :xmlns => 'http://www.sitemaps.org/schemas/sitemap/0.9' do
  xml.url do
    xml.loc root_url
    xml.changefreq 'daily'
    xml.lastmod @card_templates.first.updated_at.iso8601
    xml.priority '0.8'
  end
end

我已经检查了文件权限问题。还是行不通。有人请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:0)

这对我来说不对:

GET      /sitemap.xml(.:format)                 miscellaneous#sitemap {:format=>"xml"}

不应该是这样吗?

GET      /sitemap(.:format)                 miscellaneous#sitemap {:format=>"xml"}

我会改变您的路线:

get "sitemap", :to => "miscellaneous#sitemap"

您的控制器代码应该看起来相同

class MiscellaneousController < ApplicationController
  def sitemap
    @card_templates = CardTemplate.all
    respond_to do |format|
      format.xml
    end
  end
end

答案 1 :(得分:0)

原来这是一个IDE问题,我从textmate ui看到的文件名与我在终端上看到的文件名不同。在我重命名文件后修复。