我正在尝试获取资源的URL或路径,而不知道它是哪个类。我的应用程序具有许多可呈现页面的资源-例如“国家/地区”,“城市”等-特别是我想创建一个Sitemap。我宁愿在此阶段自己构建它,也不愿使用gem。
我看过本教程http://aspiringwebdev.com/sitemaps-in-rails-in-five-minutes/。作者只需创建一个路由和控制器,然后传递一个实例变量,然后他就可以在XML视图中循环通过。
在ERB中,它看起来像这样:
<% @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(...)
等。谁能帮忙?
最佳答案
尝试使用polymorphic_path
帮助器:
给定Active Record模型实例时,多态URL帮助程序是用于智能解析命名路由调用的方法。
<% @entries.each do |entry| %>
<url>
<loc>http://yourdomain.com<%= polymorphic_path(entry) %></loc>
<priority>0.7</priority>
</url>
<% end %>
http://api.rubyonrails.org/classes/ActionDispatch/Routing/PolymorphicRoutes.html
关于ruby-on-rails - Rails:在不知道对象类的情况下获取路径/URL(多个模型的站点地图),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41203526/