父资源独有的friendly_id 范围
Posted
技术标签:
【中文标题】父资源独有的friendly_id 范围【英文标题】:friendly_id scope unique to parent resource 【发布时间】:2014-03-22 04:20:18 【问题描述】:是否可以将 slug 限定为父资源,以便两个用户可以共享同一个资源 slug?示例:
两个用户会有新闻文章“i-am-awesome”
域/joe/news/i-am-awesome 域名/sara/news/i-am-awesome
我已经为用户资源的唯一性对 slug 进行了自定义验证,但这仍然会为第二个用户生成 UUID。最终成为:
域/sara/news/i-am-awesome-UUID
【问题讨论】:
【参考方案1】:提供帮助可能为时已晚,但可以,您可以将friendly_id 限定为范围。来自documentation:
class Restaurant < ActiveRecord::Base
extend FriendlyId
belongs_to :city
friendly_id :name, :use => :scoped, :scope => :city
end
class City < ActiveRecord::Base
extend FriendlyId
has_many :restaurants
friendly_id :name, :use => :slugged
end
City.friendly.find("seattle").restaurants.friendly.find("joes-diner")
City.friendly.find("chicago").restaurants.friendly.find("joes-diner")
【讨论】:
以上是关于父资源独有的friendly_id 范围的主要内容,如果未能解决你的问题,请参考以下文章
Rails gem“friendly_id”:如何在创建对象之前获得 slug 的实时预览