2015-01-22 2 views
3

내가 잘못하고 있니? 레코드 업데이트시 슬러그가 업데이트되지 않습니다..Friendly_id가 레코드 업데이트에서 슬러그를 바꾼다

class Company < ActiveRecord::Base 
extend FriendlyId 

friendly_id :name, use: [:slugged, :finders] 

def should_generate_new_friendly_id? 
    true 
end 

내가 사용하고 있습니다 : 생성시

c = Company.last 
    c.slug = nil 
    c.name = "testing abb" 
    c.save 
    c.reload 
    c.slug // nil 
    c.name // testing abb 

: 그것은 슬러그 삽입 만에 업데이트 나던

friendly_id (5.0.4) 
Rails 4.1.7 
ruby 2.1.3p242 (2014-09-19 revision 47630) 

이것은 내가 터미널에 노력하고있어 어떻게 기록 갱신. 어떤 생각? 당신의 요구를 충족하기 위해

friendly_id :name, use: %i(slugged history finders) 

should_generate_new_friendly_id 메소드를 오버라이드 (override) :

+0

안녕하세요. 당신이 내 대답을 받아들이지도 않았고 당신의 해결책을 올린 것도 아니었다. –

답변

4

:historyfriendly_id :name, use: %i(slugged finders)에 추가

아래 포스트 당으로
def should_generate_new_friendly_id? #will change the slug if the name changed 
    name_changed? 
    end 
+0

나는 코드에서 앞서 언급 한 것처럼'should_generate_new_friendly_id? '를 이미 덮어 쓴다. 하지만 알아 냈습니다. 문제는 Model.rb 파일이 너무 커서'should_generate_new_friendly_id? '가 이미 다른 개발자가 파일 끝에 정의했음을 알 수 없다는 것입니다. – Kashif

+0

'model.rb' "와 같은 것은 없습니다. 통지 "뭔가 .. 추적 할 변경 내용을 말하지 않고 단순히"true "를 반환하기 때문에 메서드가 작동하지 않습니다. 제공 한 지침을 따라하면 작동합니다 –

+0

감사합니다 Andrey ... – Kashif

관련 문제