2011-09-30 5 views
0

Ruby on Rails 3.1을 사용하고 있습니다. mongoid 및 mongoid_slug gem을 사용하여 내 URL을 읽을 수있게하려고합니다. 내 문제는 : 내 사진 모드에서는 다음 코드를 사용하십시오 : "Mongoid :: Document 포함", "slug : title"(제목은 사진의 속성 중 하나임) 그리고 내 컨트롤러에서, 나는이 액션을 호출한다. "@photo = Photo.find_by_slug (params [: id])"하지만이 코드는 항상 null 값을 반환한다 !! 제발, 도와주세요!find_by_slug (params [: id])는 항상 null을 반환합니다.

+0

내 경로가 괜찮다고 생각합니다! "@photo = Photo.find (params [: id])는 여전히 작동합니다! –

+0

아니요! 대신/photo/a-cockroach와 같은 읽을 수있는 링크를 원한다는 의미입니다. 사진/sadfasf12312. 내 컨트롤러에서 find (params [: id])를 호출하면 url은/photo/_id !! 사실, _id가 andress에 표시되는 것을 원하지 않는다. 단지 photo.title을 원한다. 슬러그) 주소에서! 죄송합니다 왜냐하면 나는 매우 새로운 T__T !! –

+0

여기에 내 경로가 있습니다 : match '/ artwork/: id'=> "pages # artwork", : as => "artwork". 전화 : Photo.find (params [: id]) 내 작품 작업에, 나는 여기에 문제가 있다고 생각하지 않습니다! –

답변

3

내 대답을 찾았지만 어쨌든 당신 덕분에! 모델이 슬러그를로드하지 않기 때문에 항상 null 값을 반환합니다. 즉, 모델의 모든 객체에는 "슬러그 : 제목"이 없습니다. 따라서 내 모델에 슬러그를 초기화해야합니다. 내 db.rake 파일에 다음 코드를 작성하고 rake db : init_slug를 실행합니다. 이 내 init_slug 작업은 : "photo.all.each do | p | p.send (: generate_slug!) p.save!" 그런 다음 서버를 한 번 더 다시 시작하면 코드가 더 이상 null 값을 반환하지 않습니다.

관련 문제