我是rails开发的新手。在rails4中使用mongoid时,我不知道如何使我构建的模型映射为我本地mongodb中的表。
这是user.rb:
class User
include Mongoid::Document
include Mongoid::Timestamps
field :username, type: String
field :email, type: String
field :role, type: String
field :password, type: String
validates_presence_of :username, :password
validates_uniqueness_of :username
validates_inclusion_of :role, in: %w(guest admin)
class << self
def authenticate(username, password)
user = find_by(username: username, password: password)
if user
user
end
end
end
end
根据导轨启动指南。我们可以使用rails generate model User
,然后使用rake db:migrate
在表格中创建模型。但是当我使用mongodb作为数据库时,我很困惑。
现在数据库已成功配置,这意味着我的本地环境具有我配置的数据库。但是用户表不存在,我只想知道如何使模型映射到数据库中的表。我是否必须使用某个命令创建它,或者只需要在某个地方加载模型。非常感谢你们回答这个问题。
答案 0 :(得分:1)
对于MongoDB,您不需要迁移,因为它的架构较少。只需存储一条记录,它就会出现在您的数据库中。
由于它的架构较少,您可以更改Rails模型,而无需迁移数据库,MongoDB也不会打扰。但请确保您的应用程序可以处理存储内容的两个版本。
但是如果你愿意的话,当你在Rails模型中改变某些东西时,你可以编写将旧数据转换为新模式的迁移(但是我会在我有一些生产数据之前开始编写迁移,用于开发删除数据库并重新创建它是可以的。但正如我所说,这只会困扰你的Rails应用程序。 MongoDB允许您在没有迁移的情况下完成所有操作。
答案 1 :(得分:1)
照顾好以下事项。
使用mongoDB生成rails应用程序时跳过活动记录。
打开config / application.rb并靠近顶部,删除行需要“rails / all”并添加以下行,以便最终得到此
Rails 3.2+您还需要删除驻留在您的环境中的Active Record的配置选项,config / environments / development.rb
Rails 3.2.3+你还需要在config / application.rb中注释掉以下行
使用mongoDB设计rails应用程序就像Fun !!