gpt4 book ai didi

ruby-on-rails - rails : Get path/url without knowing the object's class (sitemap for multiple models)

转载 作者:行者123 更新时间:2023-12-04 06:23:15 27 4
gpt4 key购买 nike

我试图在不知道它是哪个类的情况下获取资源的 URL 或路径。我的应用程序有许多呈现页面的资源——想想国家、城市等等——特别是,我想创建一个站点地图。我宁愿在这个阶段自己构建它,也不愿使用 gem。

我看过这个教程http://aspiringwebdev.com/sitemaps-in-rails-in-five-minutes/ .作者只需创建一个路由和 Controller ,然后在 XML View 中循环传递一个实例变量。

在 ERB 中,它看起来像这样:

<% @countries.each do |entry| %>
<url>
<loc>http://yourdomain.com<%= country_path(entry) %></loc>
<priority>0.7</priority>
</url>
<% end %>

我想像这样处理 5 或 6 个模型。最好,我会在 Controller 中这样做:
@entries = [Country.all, City.all, OtherModel1.all, OtherModel2.all]

...然后执行 each在这个实例变量上循环 @entries .但我不知道用什么代替 country_path(...) , city_path(...)等等。

谁能帮忙?

最佳答案

尝试使用 polymorphic_path helper :

Polymorphic URL helpers are methods for smart resolution to a named route call when given an Active Record model instance.


<% @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 : Get path/url without knowing the object's class (sitemap for multiple models),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41203526/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com