博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mac + Rails3 + MongoDB的Demo工程搭建
阅读量:4044 次
发布时间:2019-05-24

本文共 2357 字,大约阅读时间需要 7 分钟。

<!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

环境:
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.0]
rvm 1.14.5 (stable) by Wayne E. Seguin <>, Michal Papis <> []
Rails 3.2.6
MongoDB db version v2.0.6, pdfile version 4.5

终端中执行命令:
rails new mongodemo
gem install mongo_mapper

在enviroment.rb中添加config.gem "mongo_mapper"
如启动报config变量无法找到,则修改config.gem "mongo_mapper"为$config.gem "mongo_mapper"
异常信息:
/Users/seraph/Documents/rails_projects/mongodemo/config/environment.rb:7:in `<top (required)>': undefined local variable or method `config' for main:Object (NameError)
$config代表全局变量引用

在config/initalizers中添加文件mongo_config.rb
内容:MongoMapper.database = "mongodemo-#{Rails.env}"

在Gemfile中添加
source ""
gem 'mongo_mapper', github: "jnunemaker/mongomapper"
gem "bson_ext"
gem "nifty-generators", :group => :development
然后执行命令:bundle install
使用脚手架,生成MongoDB演示代码:
rails generate scaffold project name:string --orm=mongo_mapper
rails generate scaffold task project_id:string name:string completed:boolean --orm=mongo_mapper
访问MongoDB: 
各种异常情况处理:

1.问题:启动Rails服务器如报如下异常,说明没有安装bson_ext.
  gem install bson_ext
  If you continue to receive this message after installing, make sure that the
  bson_ext gem is in your load path and that the bson_ext and mongo gems are of the same version.

2.问题:在使用nifty生成代码时,如报如下异常,需执行:gem install nifty-generators
rails g nifty:scaffold Recipe name:string index new
/Users/seraph/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/resolver.rb:287:in `resolve': Could not find gem 'nifty-generators (>= 0) ruby' in the gems available on this machine. (Bundler::GemNotFound)

3.问题:mongodb演示,访问时,报异常:undefined method `key?' for nil:NilClass
解决:
(1)在Gemfile中添加
(2)在终端中运行 bundle install
解释:
Explanation: Rails 3.2.4 added a accessible_attributes method to ActiveModel, but MongoMapper already had this; so they were clobbering each other.
链接:

4.问题:访问时,报如下异常:
ArgumentError (wrong number of arguments (1 for 0)):
  app/controllers/projects_controller.rb:1:in `<top (required)>'
解决办法:未能明确,怀疑

5.问题:如果访问MongoDB页面时,页面提示需开启rest,则在/usr/local/mongodb/mongod.conf文件中添加
rest = true
全部内容是:
# Store data alongside MongoDB instead of the default, /data/db/
dbpath = /usr/local/mongodb_data
# Only accept local connections
bind_ip = 127.0.0.1
# Seraph add, to enable REST
rest = true

资源:
Rails + MongoDB的Demo开发: 
在Mac环境下安装MongoDB: 

转载地址:http://gjhdi.baihongyu.com/

你可能感兴趣的文章
小谈python 输出
查看>>
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
查看>>
python:如何将excel文件转化成CSV格式
查看>>
机器学习实战之决策树(一)
查看>>
机器学习实战之决策树二
查看>>
[LeetCode By Python]7 Reverse Integer
查看>>
[leetCode By Python] 14. Longest Common Prefix
查看>>
[LeetCode By Python]121. Best Time to Buy and Sell Stock
查看>>
[LeetCode By Python]122. Best Time to Buy and Sell Stock II
查看>>
[LeetCode By Python]125. Valid Palindrome
查看>>
[LeetCode By Python]136. Single Number
查看>>
SVN客户端命令详解
查看>>
Android/Linux 内存监视
查看>>
Linux系统信息查看
查看>>
用find命令查找最近修改过的文件
查看>>
Android2.1消息应用(Messaging)源码学习笔记
查看>>
android raw读取超过1M文件的方法
查看>>
ubuntu下SVN服务器安装配置
查看>>
MPMoviePlayerViewController和MPMoviePlayerController的使用
查看>>
CocoaPods实践之制作篇
查看>>