Ser*_*hei 4 ruby-on-rails mongodb mongoid
我安装了gem mongoid到RoR应用程序,但收到错误"未定义的方法`键?" 为nil:NilClass",同时为键功能指定属性.
所以我有这个模型:
class Author
include Mongoid::Document
field :name
key :name
end
Run Code Online (Sandbox Code Playgroud)
并默认脚手架控制器和运行此url localhost:3000/authors,收到此错误
NoMethodError in AuthorsController#index
undefined method `key?' for nil:NilClass
Rails.root: C:/Users/Jeremy/RubymineProjects/university
Run Code Online (Sandbox Code Playgroud)
宝石文件:
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'
Run Code Online (Sandbox Code Playgroud)
我从这里使用了指南http://railscasts.com/episodes/238-mongoid?view=asciicast,做了两次相同的事情.
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
Run Code Online (Sandbox Code Playgroud)
文档:http://mongoid.org/en/mongoid/docs/upgrading.html