2012-10-22 59 views
3

我安裝了gem mongoid到RoR應用程序,但收到錯誤「未定義的方法`鍵? for nil:NilClass「,同時爲鍵功能分配屬性。mongoid模型的關鍵不起作用

所以我有這樣的模式:

class Author 
     include Mongoid::Document 
     field :name 
     key :name 
    end 

和默認支架控制器和運行這個網址本地主機:3000 /作者,收到此錯誤

NoMethodError in AuthorsController#index 

undefined method `key?' for nil:NilClass 
Rails.root: C:/Users/Jeremy/RubymineProjects/university 

寶石文件:

source 'https://rubygems.org' 

gem 'rails', '3.2.6' 
gem "mongoid", "~> 3.0.0" 
gem "bson_ext", "~> 1.2" 

group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 

我從這裏使用指南http://railscasts.com/episodes/238-mongoid?view=asciicast,兩次都做了同樣的事情。

+0

你有沒有運行耙分貝:遷移? – Louisa

回答

6

Model.identity和Model.key已被刪除。對於自定義ID,用戶 現在必須覆蓋_id字段。當默認值是proc時,在之後應用 默認值設置所有其他屬性。

class Band 
    include Mongoid::Document 
    field :_id, type: String, default: ->{ name } # which was `key :name` before v3 
end 

文檔:http://mongoid.org/en/mongoid/docs/upgrading.html