Rails 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"

рейк маршруты:

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

маршруты.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

Позиция шаблона: app/views/miscellaneous/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

Я уже проверил проблемы с правами доступа к файлам. До сих пор не работает. Кто-нибудь помогите, пожалуйста. Заранее спасибо.


person Tristan.Liu    schedule 27.11.2013    source источник


Ответы (2)


Это кажется мне неправильным:

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
person Farley Knight    schedule 27.11.2013
comment
Внес еще некоторые изменения. Дайте мне знать, если это поможет. - person Farley Knight; 27.11.2013
comment
Все еще получаю ту же ошибку. Дополнительная информация: я нахожусь на рубиновых рельсах 1.9.3 3.2.13. Спасибо. - person Tristan.Liu; 27.11.2013
comment
Нашел решение. Обновлен ответ и отправлен пример на github: github.com/farleyknight/sample_app - person Farley Knight; 27.11.2013
comment
Спасибо, Фарли. Ваше приложение работает, как и ожидалось. Это странно. Я использовал тот же код для создания нового приложения, которое отлично работает. В то время как тот же код сломался в моем существующем приложении. Может проблема в конфигурации? - person Tristan.Liu; 27.11.2013
comment
Я попробовал render(:template=›разное/карта сайта, :formats=›[:xml], :handlers=›:builder, :layout=›false), но все равно столкнулся с той же проблемой. - person Tristan.Liu; 27.11.2013

Оказывается, это проблема IDE, имя файла, которое я видел в текстовом интерфейсе, отличается от того, что я видел в терминале. Исправлено после того, как я переименовал файл.

person Tristan.Liu    schedule 27.11.2013