2011-10-06 3 views
1

레일을 사용하다가 사용자를 설정하고 삭제 한 다음 다시 작성하면 이상한 효과가 발생합니다. kevin ... (삭제) ... 케빈을 다시 만든 다음 새 URL은 kevin - 2입니다.이 경우 다시 케빈 - 3입니다. 사용자를 만들면Rails Devise Url

+0

질문에 대한 설명이 훨씬 강력해야합니다. 관련 코드 샘플을 제공하십시오. –

+0

나는 Lester와 동의합니다. 질문 할 때 좀 더 정확하게 대답해야합니다 ... 문제의 URL은 무엇입니까? – Tilo

+0

나는 사용자들이 실제로 삭제되지는 않았지만 acts_as_paranoid와 같은 시스템에 의해 유지되고 있다고 생각한다. 퍼 뮤 링크는 다른 라이브러리에 의해 생성되어 각 사용자가 생성 될 때 고유하게 만듭니다. –

답변

3

Rails 응용 프로그램에서 사용자를 삭제하면 해당 사용자에 대한 데이터베이스의 ID는 사용자가 삭제 된 후에 사용할 수 없습니다.

예를 들어 빈 시스템으로 시작하면 사용자 테이블에 항목이 없습니다. ..

100.times do |i| 
    u = User.create(:name => "Kevin")  
    puts "User ID: #{u.id}" 
    u.delete 
end 

당신이 볼 것은 1..100에서 ID를 사용하는 것입니다 - 각각의 새로운 사용자 항목 (이름이 같은 관계없이 경우!)가 연속적으로 높은 I있을 것이다 D, 예 : DB에서 사용 가능한 다음 미사용 ID. 그리고 그 ID는 물론 편안한 URL의 일부로 보입니다.

위 코드를 두 번 실행하면 두 번째로 101..200 ID를 사용하게됩니다.

그래서 당신이보고있는 것은 정상적인 레일 동작입니다.

+1

/user/: id,/user/2 등의 줄에있는 것은 아니지만/: username - : id와 같은 것입니다. 어쨌든 그가 말하는 것을 알아내는 것은 불가능합니다. 약 URL이 생성되는 것과 같은 일종의 예제 (복사/붙여 넣기)가 없다. –

관련 문제