新建項目javascript
rails new mongoid_app --skip-active-record --skip-test-unit --skip-bundle create create README.rdoc create Rakefile create config.ru create .gitignore create Gemfile create app create app/assets/javascripts/application.js create app/assets/stylesheets/application.css create app/controllers/application_controller.rb create app/helpers/application_helper.rb create app/views/layouts/application.html.erb create app/assets/images/.keep create app/mailers/.keep create app/models/.keep create app/controllers/concerns/.keep create app/models/concerns/.keep create bin create bin/bundle create bin/rails create bin/rake create config create config/routes.rb create config/application.rb create config/environment.rb create config/environments create config/environments/development.rb create config/environments/production.rb create config/environments/test.rb create config/initializers create config/initializers/backtrace_silencers.rb create config/initializers/filter_parameter_logging.rb create config/initializers/inflections.rb create config/initializers/mime_types.rb create config/initializers/secret_token.rb create config/initializers/session_store.rb create config/initializers/wrap_parameters.rb create config/locales create config/locales/en.yml create config/boot.rb create db create db/seeds.rb create lib create lib/tasks create lib/tasks/.keep create lib/assets create lib/assets/.keep create log create log/.keep create public create public/404.html create public/422.html create public/500.html create public/favicon.ico create public/robots.txt create tmp/cache create tmp/cache/assets create vendor/assets/javascripts create vendor/assets/javascripts/.keep create vendor/assets/stylesheets create vendor/assets/stylesheets/.keep
修改Gemfilecss
source 'https://rubygems.org' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '4.0.2' gem 'bson_ext' gem 'mongo' gem 'mongoid', github: 'mongoid/mongoid' # Use SCSS for stylesheets gem 'sass-rails', '~> 4.0.0' gem 'uglifier', '>= 1.3.0' gem 'coffee-rails', '~> 4.0.0' gem 'jquery-rails' gem 'turbolinks' gem 'jbuilder', '~> 1.2' group :doc do gem 'sdoc', require: false end
運行bundle installhtml
bundle install Updating git://github.com/mongoid/mongoid.git Fetching gem metadata from https://rubygems.org/........... Fetching additional metadata from https://rubygems.org/.. Resolving dependencies... Using rake (10.1.1) Using i18n (0.6.9) Using minitest (4.7.5) Using multi_json (1.8.2) Using atomic (1.1.14) Using thread_safe (0.1.3) Using tzinfo (0.3.38) Using activesupport (4.0.2) Using builder (3.1.4) Using erubis (2.7.0) Using rack (1.5.2) Using rack-test (0.6.2) Using actionpack (4.0.2) Using mime-types (1.25.1) Using polyglot (0.3.3) Using treetop (1.4.15) Using mail (2.5.4) Using actionmailer (4.0.2) Using activemodel (4.0.2) Using activerecord-deprecated_finders (1.0.3) Using arel (4.0.1) Using activerecord (4.0.2) Using bson (2.0.0) Using bson_ext (1.5.1) Using bundler (1.5.1) Using coffee-script-source (1.6.3) Using execjs (2.0.2) Using coffee-script (2.2.0) Using thor (0.18.1) Using railties (4.0.2) Using coffee-rails (4.0.1) Using connection_pool (1.2.0) Using hike (1.2.3) Using jbuilder (1.5.3) Using jquery-rails (3.0.4) Using json (1.8.1) Using mongo (1.3.1) Using optionable (0.2.0) Using moped (2.0.0.beta4) Using origin (2.0.0) Using mongoid (4.0.0.alpha1) from git://github.com/mongoid/mongoid.git (at master) Using tilt (1.4.1) Using sprockets (2.10.1) Using sprockets-rails (2.0.1) Using rails (4.0.2) Using rdoc (3.12.2) Using sass (3.2.13) Using sass-rails (4.0.1) Using sdoc (0.3.20) Using turbolinks (2.1.0) Using uglifier (2.4.0) Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
生成mongoid數據庫配置文件java
rails generate mongoid:config
create config/mongoid.yml
在這裏不對mongoid.yml進行任何更改(假設已安裝MongoDB並以默認設置啓動),順便貼一下生成的mongoid.yml 的文件內容jquery
1 development: 2 # Configure available database sessions. (required) 3 sessions: 4 # Defines the default session. (required) 5 default: 6 # Defines the name of the default database that Mongoid can connect to. 7 # (required). 8 database: mongoid_app_development 9 # Provides the hosts the default session can connect to. Must be an array 10 # of host:port pairs. (required) 11 hosts: 12 - localhost:27017 13 options: 14 # Change the default write concern. (default = { w: 1 }) 15 # write: 16 # w: 1 17 18 # Change the default consistency model to primary, secondary. 19 # 'secondary' will send reads to secondaries, 'primary' sends everything 20 # to master. (default: primary) 21 # read: secondary_preferred 22 23 # How many times Moped should attempt to retry an operation after 24 # failure. (default: 30) 25 # max_retries: 30 26 27 # The time in seconds that Moped should wait before retrying an 28 # operation on failure. (default: 1) 29 # retry_interval: 1 30 # Configure Mongoid specific options. (optional) 31 options: 32 # Enable the identity map, needed for eager loading. (default: false) 33 # identity_map_enabled: false 34 35 # Includes the root model name in json serialization. (default: false) 36 # include_root_in_json: false 37 38 # Include the _type field in serializaion. (default: false) 39 # include_type_for_serialization: false 40 41 # Preload all models in development, needed when models use 42 # inheritance. (default: false) 43 # preload_models: false 44 45 # Protect id and type from mass assignment. (default: true) 46 # protect_sensitive_fields: true 47 48 # Raise an error when performing a #find and the document is not found. 49 # (default: true) 50 # raise_not_found_error: true 51 52 # Raise an error when defining a scope with the same name as an 53 # existing method. (default: false) 54 # scope_overwrite_exception: false 55 56 # Use Active Support's time zone in conversions. (default: true) 57 # use_activesupport_time_zone: true 58 59 # Ensure all times are UTC in the app side. (default: false) 60 # use_utc: false 61 test: 62 sessions: 63 default: 64 database: mongoid_app_test 65 hosts: 66 - localhost:27017 67 options: 68 read: primary 69 # In the test environment we lower the retries and retry interval to 70 # low amounts for fast failures. 71 max_retries: 1 72 retry_interval: 0
使用scaffold腳手架生成測試程序linux
rails generate scaffold User name:string email:string invoke mongoid create app/models/user.rb invoke resource_route route resources :users invoke scaffold_controller create app/controllers/users_controller.rb invoke erb create app/views/users create app/views/users/index.html.erb create app/views/users/edit.html.erb create app/views/users/show.html.erb create app/views/users/new.html.erb create app/views/users/_form.html.erb invoke helper create app/helpers/users_helper.rb invoke jbuilder create app/views/users/index.json.jbuilder create app/views/users/show.json.jbuilder invoke assets invoke coffee create app/assets/javascripts/users.js.coffee invoke scss create app/assets/stylesheets/users.css.scss invoke scss create app/assets/stylesheets/scaffolds.css.scss
順便也貼一下生成的model文件 user.rbgit
1 class User 2 include Mongoid::Document 3 field :name, type: String 4 field :email, type: String 5 end
rails server => Booting WEBrick => Rails 4.0.2 application starting in development on http://0.0.0.0:3000 => Run `rails server -h` for more startup options => Ctrl-C to shutdown server [2013-12-30 16:46:00] INFO WEBrick 1.3.1 [2013-12-30 16:46:00] INFO ruby 2.0.0 (2013-06-27) [x86_64-linux] [2013-12-30 16:46:00] INFO WEBrick::HTTPServer#start: pid=9442 port=3000
訪問地址http://localhost:3000/users 並添加一條數據github
運行mongo查看數據是否添加成功shell
mongo MongoDB shell version: 2.4.6 connecting to: test > show dbs mongoid_app_development 0.203125GB test (empty) > use mongoid_app_development switched to db mongoid_app_development > show collections system.indexes users > db.users.find() { "_id" : ObjectId("52c1330a75627524e2000000"), "name" : "grj", "email" : "grj@example.com" } > exit bye
下載: mongoid_app.rar數據庫