【发布时间】:2017-06-24 05:40:27
【问题描述】:
我已经按照Home page 的所有说明设置了Friendly Id。
简而言之,我在我的 Place 模型表中添加了 module 和 slug 列。
代替我。rb
extend FriendlyId
friendly_id :name, use: [:slugged, :finders, :history]
我也跑了Place.find_each(&:save)。
现在name 的值可以不同,因为有很多相同名称的地方。所以在索引操作中,当我调用显示操作时,使用id,我得到正确的结果,但网址看起来很糟糕,但是,当我使用friendly_id 调用显示操作时,url 在这里也很糟糕,它的 uniq 令牌(如字符串),而且我总是得到错误的结果。
例如。
对于name值为burwood的记录,也可以有多个条目。但是,有两个问题:-
- 如果我使用的是
id而不是friendly_id,我的网址应该是www.mysite/sydney/burwood而不是www.mysite/sydney/21(这看起来很奇怪 - www.mysite/sydney/burwood-78894aa3-dea1-4915 -b2f7-038182511005),如何处理。 ?? - 如果我 不 使用 Id 并使用
friendly_id作为 url 参数,对于类似的位置值 burwood,即使我要求,我总是会获得第一条记录另一个。所以在 DB 中,name的值burwood有两条记录,我的 slug 值不同 -burwood和burwood-78894aa3-dea1-4915-b2f7-038182511005
所以如果使用 id 作为 url 参数,它的工作原理是 id 是 uniq 并且不考虑 slug,但我希望 url 更有意义。
但是,如果我使用 friendly_id,url 看起来很奇怪,并且不会获取唯一记录。
请帮忙
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 friendly-url friendly-id