2012-03-15 1 views
3

Person 및 Company 모델과 다형성으로 연결된 모델 사용자가 있습니다.friendly_id 새 사용자를 만드는 동안 thowing 오류가 발생했습니다.

friendly_id를 사용하여 개인과 회사 모두에 퍼머 링크를 표시하고 있습니다.

사람은 first_name 특성을 가지고 있으며 다음 모델을 내 모델에 넣습니다.

extend FriendlyId 
friendly_id :first_name 

이제 기존 항목을 업데이트하면 슬러그가 완벽하게 생성됩니다. 하지만 라우팅 오류가 발생하는 새로운 용도를 만들 때 문제가 발생합니다.

둘째, 모든 사용자가 한 명의 사용자를 가지고 있으므로 사용자가 다음 명령을 사용하면 업데이트 및 새 레코드가 모두 nil 클래스 오류에 알 수없는 메서드 사용자 이름을 던집니다.

extend FriendlyId 
friendly_id :person_permalink, use: [:slugged, :history] 

def person_permalink 
    "#{self.user.username} #{self.name}" 
end 
+0

_ 라우팅 문제가 발생하는 새로운 용도를 만들 때 문제가 발생합니다. 자세한 정보를 제공해주십시오. 오류가 있지만 스택 추적을 제공하지 않는다는 것을 말하는 것입니다. –

답변

2

나는 이것이 friendly_id의 before_save과 관련 있다고 생각합니다.

more friendly_id가 생성 될 때 연결된 레코드와 ID가 동기화되지 않고 self.user이 nil 일 가능성이 높습니다.

friendly_id 내의 기본 키 ID 테이블 열 값을 사용하려는 사람들과 비슷한 문제가 있습니다.