2

我尝试编写我的应用程序的业务逻辑。这都是 ruby​​ 类。没有数据库,也没有像 Rails、Sinatra 这样的 UI 框架。我只有一个关于业务逻辑的 Gem_file,Gem_file 只包含“mini_test”gem。我使用 mini_test 来测试业务逻辑。现在,我需要在系统中添加一个数据库。我怎样才能做到这一点?mongoid 配置在 Rails 上的 application.file 中进行。但是,我不使用 Rails 或任何其他框架。反正有没有像Rails,Sinatra这样的框架来配置mongoid。我希望我能解释我的问题。另外,我在下面添加了我的代码:

这是我的背景-

class HeadTeacherDefineAcademicYearContext
  attr_reader :person, :academicyear

  def initialize(person, academicyear)
    @person, @academicyear = person, academicyear
    @person.extend HeadTeacher
  end

  def call
   @person.define_academic_year @academicyear
  end
end

这是我的角色模块

module HeadTeacher
  def define_academic_year(academicyear)
     #i write db save process here using any database
  end
end

我的模特班

class AcademicYear
  attr_accessor :year
end
4

2 回答 2

1

您必须gem 'mongoid'在 Gemfile 中包含并安装它。之后,您可以在需要的地方 require 并初始化 Mongoid:

require 'mongoid'
Mongoid.load!("mongoid.yml", :development)

它需要一个mongoid.yml带有配置的文件。示例:

development:
   sessions:
     default:
      database: myapp_development
      hosts:
        - localhost:27017

当然,您可以使用其他上下文而不是:development,也许可以通过环境变量对其进行分配。现在,添加Mongoid::Document到您的模型中:

class AcademicYear
  include Mongoid::Document

  field :year, type: Integer
end
于 2013-04-05T11:32:09.753 回答
0

添加gem "mongoid", "~> 3.0.0"到您的 Gemfile 然后将配置 yaml 文件放入您的项目,内容如下:

development:
  sessions: 
    default:
      database: mongoid
      hosts:
        - localhost:27017

然后Mongoid.load!("path/to/your/mongoid.yml", :development)在您的应用程序中使用。

在您想要将对象保存到 DB 的每个类中,您都必须这样做include Mongoid::Document

所以你的例子变成:

class HeadTeacherDefineAcademicYearContext
  attr_reader :person, :academicyear
  field :person, type: String
  field :academicyear, type: Date
  ...
end

您最好检查 mongoid 文档以了解下一步要做的事情。

于 2013-04-05T11:35:10.513 回答