2013-09-06 5 views
1

friendly_id 및 레일 3.2를 사용하고 있습니다. 제품 테이블을 깨끗한 URL로 변환하려고합니다. 나는 새로운 슬러그 열을 사용하여 아무런 문제가없는거야 및 URL과 같은 미세 생성하는friendly_id SEO 친화적 인 URL로 변환하는 레일이 달린 보석

example.com/products/new-friendly-url

내가으로 실행하고 문제, 난 여전히 유지하려는 것입니다 활성 레코드의 고유 ID 또는 다른 고유 식별자. 그 이유는 많은 제품이 동일한 친숙한 제목을 가질 수 있기 때문입니다. 나는 동일한 제목을 가진 제품이있는 경우, 현재 동작 식별 독특한와 슬러그를 생성 이미 같은 : 그래서

example.com/products/new-friendly-url--2

friendly_id는 고유 한 슬러그를 생성하지만 형식을 변경하려고하는데 어디에서/어떻게해야하는지 모르겠습니다.

extra -을 제거하고 friendly_id가 추가하는 "-"이 하나 뿐인 방법이 있습니까?

다음은 친절한-ID의 구성에서 시퀀스 구분자를 변경할 수 있습니다 내 모델

 class Product < ActiveRecord::Base 
     extend FriendlyId 
     friendly_id :title, :use => :slugged 

     attr_accessible :description, :image, :posted_by, :title, :url,  
     :price 

     validates_format_of :price, :with => /^[0-9]+$/ 

     belongs_to :user 
     has_many :comments 

답변

3

입니다.

seperator를 '-'로 변경하는 동작은 제안되지 않습니다. 문서에 의하면 :

숫자 시퀀스에서 슬러그베이스를 분리하는 데 사용되는 문자열입니다.

기본적으로 -는 슬러그를 시퀀스에서 분리하는 데 사용됩니다. FriendlyId는 두 개의 대시를 사용하여 시퀀스에서 슬러그를 구별하고 이름에 숫자를 사용합니다.

sequence_separator 구성 옵션을 설정하여 기본 구분 기호를 변경할 수 있습니다.

명백한 이유로, 에 숫자가 포함 된 친숙한 ID를 사용하지 않으려면 "-"로 설정하지 않는 것이 좋습니다.

http://norman.github.io/friendly_id/4.0/FriendlyId/Slugged/Configuration.html#sequence_separator-instance_method

는 레일 4를 사용할 수있는 경우에, 당신은 5.0에 친화적 인-ID를 업그레이드 할 수 있습니다, 그것은 자동으로이 문제를 해결합니다.

+0

굉장합니다. 좋은 대답, 고마워. – stonep