اذهب إلى المحتوى

السؤال

نشر

أريد أن أستخدم MongoDB مع تطبيق ويب قمتُ ببرمجته باستخدام كلّ من لغة روبي وإطار العمل Sinatra، وأريد أن أتعامل مع قواعد البيانات بالاعتماد على الوحدات معMongoDB، فكيف يُمكنني ذلك؟

Recommended Posts

  • 0
نشر

يُمكن الاعتماد على مُخطّط بيانات الكائنات (object data mappers) لاستخدام   الوحدات مع MongoDB في سيناترا.

هناك العديد من الـODM المُتوفّرة والتّي تُساعدك على استخدام MongoDB في تطبيق سيناترا. سأسرد في إجابتي هذه بعضا من الـODM ويُمكنك اختيار أحدها والاعتماد عليه.

  1. MongoMapper

تنصيبه:

gem install mongo_mapper
# استدعاءه
require 'mongo_mapper'

#إنشاء فئة النّموذج (Model class)
class Link
  include MongoMapper::Document
  key :title, String
  key :link, String
end

# أنشئ المُوجّه

get '/' do
  @links = Link.all
  haml :links
end

 

  • Mongoid

تنصيبه:

gem install mongoid
# استدعاءه

require 'mongoid'

#إنشاء فئة النّموذج (Model class)
class Link
  include Mongoid::Document
  field :title, :type => String
  field :link, :type => String
end

# أنشئ المُوجّه

get '/' do
  @links = Link.all
  haml :links
end
  • Candy

تنصيبه:

gem install candy
# استدعاءه
require 'candy'


#إنشاء فئة النّموذج (Model class)
class Link
  include Candy::Piece
end

class Links
  include Candy::Collection
  collects :link   # Declares the Mongo collection is 'Link'
end

Link.connection # => Defaults to localhost port 27017
Link.db         # => Defaults to your username, or 'candy' if unknown
Link.collection # => Defaults to the class name ('Link')

# أنشئ المُوجّه
get '/' do
  @links = Links.all
  haml :links
end
  • Mongomatic

تنصيبه:

gem install  mongomatic


# استدعاءه
require 'mongomatic'


#إنشاء فئة النّموذج (Model class)
class Link < Mongomatic::Base
  def validate
    self.errors.add "title", "blank" if self["title"].blank?
    self.errors.add "link",  "blank" if self["link"].blank?
  end
end

# أنشئ المُوجّه
get '/' do
  @links = Link.all
  haml :links
end

def validate
  self.errors.add "name", "blank" if self["name"].blank?
  self.errors.add "email", "blank" if self["email"].blank?
  self.errors.add "address.zip", "blank" if (self["address"] || {})["zip"].blank?
end
  • MongoODM

 تنصيبه:

gem install  mongo_odm


# استدعاءه
require 'mongo_odm'


#إنشاء فئة النّموذج (Model class)
class Link
  include MongoODM::Document
  field :title
  field :link
end

# أنشئ المُوجّه
get '/' do
  @links = Link.find.to_a
  haml :links
end

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...