2014-02-20 4 views
1

두 명의 사용자가 동일한 리소스 슬러그를 공유 할 수 있도록 슬러그를 상위 리소스 범위로 범위화할 수 있습니까? 예 :friendly_id 상위 리소스에 고유 한 범위

뉴스 기사있을 것 두 사용자 "I-AM-최고"

도메인/조/뉴스/I-AM-멋진 도메인/사라/뉴스/I-AM-멋진

사용자 자원에 대한 고유성을 위해 슬러그에 대한 사용자 정의 유효성 검사를 수행했지만, 여전히 두 번째 사용자에 대한 UUID가 생성됩니다. 끝 것 :

도메인/사라/뉴스/I-AM-멋진-UUID

답변

2

도움이 너무 늦게 될 수도 있지만 그래, 당신이 할 수있는 범위 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")