2012-10-22 33 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