2012-09-19 1 views

답변

2

당신은 모델에서 레일 환경을 확인할 수 있습니다. 존재하지 않는 클래스를로드하려고합니다로

class User < ActiveRecord::Base 

    unless Rails.env.development? 
    extend FriendlyId 
    friendly_id :name, use: :slugged 
    end 

end 

는 개발

class User < ActiveRecord::Base 

    extend FriendlyId 
    friendly_id :name, use: :slugged 

    def should_generate_new_friendly_id? 
    false if Rails.env.development? 
    end 

end 
+0

그게 좋은 생각입니다. 모든 제안은 URL 재 작성을 억제하기 만합니다 (슬러그 생성을 작동 상태로 유지하는)? 또한 우리는 모든 모델 대신 보석에서 이것을 할 수 없었습니까? – ndemoreau

+0

예, 새로운 슬러그 생성을 건너 뛸 수 있습니다. 코드를 업데이트했습니다. gem 편집은 좋은 생각이 아니지만 모델이나 초기화 프로그램에서 gem 메소드를 재정의 할 수 있습니다. – emrahbasman

+0

내가 건너 뛰고 싶은 것은 URL 업데이트입니다. 나는 그것을 디버그하기 쉽기 때문에 dev에있는 id를 사용하여 유지하고 싶다. 또한, 이러한 종류의 메소드를 모델에서 제외시킬 수있는 방법이 있습니까? 많은 감사합니다! – ndemoreau

0

는 Gemfile에서이를 제거하려고 :

gem 'friendly_id' 

하고 Gemfile에 추가 :

group :production, :test do 
gem 'friendly_id' 
end 
+0

이 작동하지 않는 새로운 슬러그를 생성 건너 뜁니다. – ndemoreau