Я пытаюсь получить URL-адрес или путь к ресурсу, не зная, какой класс он есть. У моего приложения много ресурсов, которые отображают страницы - подумайте о стране, городе и т. Д. - и, в частности, я хочу создать Sitemap. Я бы предпочел построить его на этом этапе, чем использовать драгоценный камень.Rails: Получить путь/url, не зная класса объекта (карта сайта для нескольких моделей)
Я рассмотрел этот учебник http://aspiringwebdev.com/sitemaps-in-rails-in-five-minutes/. Автор просто создает маршрут и контроллер, а затем передает переменную экземпляра, которую он циклически просматривает в представлении XML.
В Еврорадио, это выглядит следующим образом:
<% @countries.each do |entry| %>
<url>
<loc>http://yourdomain.com<%= country_path(entry) %></loc>
<priority>0.7</priority>
</url>
<% end %>
Есть 5 или 6 моделей я хотел бы обрабатывать, как это. Предпочтительно, я хотел бы сделать это в контроллере:
@entries = [Country.all, City.all, OtherModel1.all, OtherModel2.all]
... затем сделать each
петлю на этом одном случае переменной @entries
. Но я не знаю, что использовать вместо country_path(...)
, city_path(...)
и так далее.
Кто может помочь?
Perfect - работает как шарм! Из любопытства: Почему Rails не использует полиморфные URL-адреса помощников по всем направлениям? Связаны ли затраты на производительность? Или это ясность? – rubykatz
Не уверен, может быть, вы могли бы взглянуть на реализацию. Пожалуйста, проверьте это как ответ, если это было хорошим решением. – fbelanger