관련 레코드가 업데이트 될 때 모델에 슬러그를 생성해야한다면 어떻게해야합니까? 예를 들어, User 및 UserProfile 모델을 사용 중이며 slug는 user.user_profile.name입니다. 새 사용자가 작성되면 연관된 user_profile도 저장됩니다. 새 사용자 레코드에 대해 슬러그가 생성됩니다. 그러나 user_profile을 업데이트 할 때 이름이 변경되면 슬러그는 업데이트되지 않습니다. 도와주세요.friendly_id 관련 모델 필드를 사용하는 보석
1
A
답변
0
should_generate_new_friendly_id?
메서드를 재정의 할 수 있습니다. 이렇게하면 새 슬러그가 생성되는 시점을 제어 할 수 있습니다.
당신은 friendly_id의 최신 버전에서이
class User < ActiveRecord::Base
extend FriendlyId
friendly_id :my_friendly_id_method, :use => :slugged
def should_generate_new_friendly_id?
user_profile.changed?
end
end
1
같은 것을 할 수있는, 당신은 슬러그를 다시 생성 할 때 (이것은 아마도 아니지만 당신이 필요)를 지정하는 방법을 정의 할 수 있습니다 :
if name_changed?
user.slug = nil
user.save
end
:
def should_generate_new_friendly_id?
name_changed? || super
end
당신은 전무하고 힘 슬러그을 설정 USERPROFILE 클래스 상에 저장 후 콜백을 사용할 수
은 슬러그를 다시 생성 friendly_id
문서에 따라 처리해야합니다. http://norman.github.io/friendly_id/