Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
heroku上rails 4应用程序中的未初始化常量Moped::BSON_Heroku_Ruby On Rails 4_Mongoid - Fatal编程技术网

heroku上rails 4应用程序中的未初始化常量Moped::BSON

heroku上rails 4应用程序中的未初始化常量Moped::BSON,heroku,ruby-on-rails-4,mongoid,Heroku,Ruby On Rails 4,Mongoid,我刚刚从rails 3更新到rails 4。所有东西都在本地工作,但部署在heroku上,我得到以下错误: ActionView::Template::Error (uninitialized constant Moped::BSON): 3: %nav.navbar-collapse 4: %ul.nav 5: %li 6: - if user_signed_in? 7: = link_to 'Logout', destroy_user_session_

我刚刚从rails 3更新到rails 4。所有东西都在本地工作,但部署在heroku上,我得到以下错误:

ActionView::Template::Error (uninitialized constant Moped::BSON):
3: %nav.navbar-collapse
4:   %ul.nav
5:     %li
6:       - if user_signed_in?
7:         = link_to 'Logout', destroy_user_session_path, :method=>'delete'
8:       - else
9:         = link_to 'Login', new_user_session_path
app/views/layouts/_navigation.html.haml:6:in `_app_views_layouts__navigation_html_haml___1118031947301940708_70104067139880'
app/views/layouts/application.html.haml:18:in `_app_views_layouts_application_html_haml__1093647294459268715_70104069850820'
当我访问当前用户时,在其他haml文件中也会发生相同的错误 -如果当前用户

以下几点对我很有用:

添加到文件:

gem "bson"
gem "moped", github: "mongoid/moped"
捆绑安装

添加到application.rb:

require "bson"
require "moped"
Moped::BSON = BSON
答复来自:

在序列化cookies/会话中引用
Moped::BSON
也可能导致此错误。删除Cookie可以修复此问题。

请参阅自Moped 2.0.0起Moped作者的评论(在撰写本文时,该版本用作mongoid 4.0.0中的驱动程序):


我使用的是Desive 3.2.4和rails 4.1.0,也使用mongoid(4.0.0.beta1)是的,这个答案是正确的。解决方案是对Mongoid的最新版本使用“BSON::ObjectId”而不是“Moped::BSON::ObjectId”。为什么将“别名”Moped::BSON改为BSON?为什么不修复核心问题并将代码更改为引用BSON而不是Moped::BSON?
Moped's BSON implementation has been removed in favor of the 10gen bson gem 2.0 and higher. All Moped::BSON references should be changed to just BSON.