在Heroku上的Rails4项目中,准备使用MongoDB(MongoLab)

提前(一事前)

mongodbのインストールについてはこちら

今回は

Rails4のプロジェクトにMongoDBを使いたい時の設定についてです。
mongoidを使います。

最终我想要将其部署在Heroku上,所以我会使用MongoLab在Heroku上进行开发。还有其他的选择,比如MongoHQ。
在Heroku上使用Mongo需要进行账户认证,比如提供信用卡信息,但基本上是免费使用的。
在MongoLab上可以免费使用大约500MB的存储空间。

Gemfile => Gem文件

# Mongo on Heroku
gem 'mongoid', '4.0.0.beta1'
gem "bson"
gem "moped", github: "mongoid/moped"

配置/mongoid.yml

$ rails generate mongoid:config

上記コマンドにより、config/mongoid.ymlが生成されます。
development, testの設定があるので、それをいじったりstagingやproductionの設定を追加します。



production:
  sessions:
    default:
      uri: <%= ENV['MONGOLAB_URI'] %>
・
・

Rails项目

このままだと、ActiveRecordのmodelを作るとき、active_record:とprefixをつける必要がある。
Railsのデフォルト設定がmongodbを使う様になってしまっている。


$ rails generate acrive_record:model

(mongoの方は、rails g model hoge:integer でいける)

如果想要基本上使用ActiveRecord,這樣會有些不方便,建議將其配置在config/application.rb上。


config.generators do |g|
  g.orm :active_record
end

当创建使用Mongo的模型时


$ rails generate mongoid:model MODEL_NAME column_name:column_type

可以。需要前缀。

模型的设置

我想要用MongoDB来编写模型。


class hoge
  include Mongoid::Document
  field :fuga_id, type: Integer
  field :time, type: Time
end

糟糕的例子


class hoge
  include Mongoid::Document
  field :fuga_id, type: Integer,
  field :time, type: Time
end
end 

如果在这样的情况下出现逗号,就会出现语法错误。

在运行”rails g mongoid:model user_id:integer”之类的命令时会出现逗号,所以最好不要在命令中指定属性,而是在之后在模型中进行编写。(该建议有点含糊不清。)

请参考

    • http://stackoverflow.com/questions/6372626/using-active-record-generators-after-mongoid-installation

 

    • http://mongoid.org/en/mongoid/

 

    https://devcenter.heroku.com/articles/mongohq
广告
将在 10 秒后关闭
bannerAds