2011-09-30 45 views
0

我剛剛使用Ruby on Rails 3.1,並且我想使用mongoid和mongoid_slug gem使我的url可讀。有我的問題: 在我的照片模式iput此代碼:「include Mongoid :: Document」,「include Mongoid :: Slug」和 「slug:title」(標題是照片的屬性之一) 而在我的控制器中,我在我的動作中打電話給我: 「@photo = Photo.find_by_slug(params [:id])」但是這段代碼總是返回一個空值! 請幫幫我!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(這是slu))在地址! 對不起,因爲我很新ror T__T !! –

+0

這是我的路線:match'/ artwork /:id'=>「pages#artwork」,:as =>「artwork」。在我的藝術作品中調用:Photo.find(params [:id]),我不認爲這裏有問題! –

回答

3

我找到了我自己的答案,不過謝謝你!它總是返回空值,因爲模型不會加載slug(這意味着模型的每個對象都沒有「slug:title」)。因此,我必須初始化我的模型。我在我的db.rake文件中寫入以下代碼並運行rake db:init_slug。這是我的init_slug任務:「photo.all.each do | p | p.send(:generate_slug!)p.save!」然後再次重新啓動服務器,並且代碼不再返回空值