@@ -541,3 +541,85 @@ are supported by Mongoid.
541
541
8.0 and 8.1 stable branches.
542
542
543
543
.. include:: /includes/unicode-checkmark.rst
544
+ .. include:: /includes/unicode-ballot-x.rst
545
+
546
+ Rails Frameworks Support
547
+ ------------------------
548
+
549
+ Ruby on Rails is comprised of a number of frameworks, which Mongoid attempts to
550
+ provide compatibility with wherever possible.
551
+
552
+ Though Mongoid attempts to offer API compatibility with `Active Record <https://guides.rubyonrails.org/active_record_basics.html>`_,
553
+ libraries that depend directly on Active Record may not work as expected when
554
+ Mongoid is used as a drop-in replacement.
555
+
556
+ .. note::
557
+
558
+ Mongoid can be used alongside Active Record within the same application without issue.
559
+
560
+ .. list-table::
561
+ :header-rows: 1
562
+ :stub-columns: 1
563
+ :class: compatibility-large no-padding
564
+
565
+ * - Rails Framework
566
+ - Supported?
567
+
568
+ * - ``ActionCable``
569
+ - |checkmark| [#rails-actioncable-dependency]_
570
+
571
+ * - ``ActionMailbox``
572
+ - |x| [#rails-activerecord-dependency]_
573
+
574
+ * - ``ActionMailer``
575
+ - |checkmark|
576
+
577
+ * - ``ActionPack``
578
+ - |checkmark|
579
+
580
+ * - ``ActionText``
581
+ - |x| [#rails-activerecord-dependency]_
582
+
583
+ * - ``ActionView``
584
+ - |checkmark|
585
+
586
+ * - ``ActiveJob``
587
+ - |checkmark| [#rails-activejob-dependency]_
588
+
589
+ * - ``ActiveModel``
590
+ - |checkmark| [#rails-activemodel-dependency]_
591
+
592
+ * - ``ActiveStorage``
593
+ - |x| [#rails-activerecord-dependency]_
594
+
595
+ * - ``ActiveSupport``
596
+ - |checkmark| [#rails-activesupport-dependency]_
597
+
598
+ .. [#rails-actioncable-dependency] There is currently no MongoDB adapter for
599
+ ``ActionCable``, however any existing adapter (such as `Redis <https://guides.rubyonrails.org/action_cable_overview.html#redis-adapter>`_)
600
+ can be used successfully in conjunction with Mongoid models
601
+
602
+ .. [#rails-activerecord-dependency] Depends directly on ``ActiveRecord``
603
+
604
+ .. [#rails-activemodel-dependency] ``Mongoid::Document`` includes ``ActiveModel::Model``
605
+ and leverages ``ActiveModel::Validations`` for validations
606
+
607
+ .. [#rails-activesupport-dependency] ``Mongoid`` requires ``ActiveSupport`` and
608
+ uses it extensively, including ``ActiveSupport::TimeWithZone`` for time handling.
609
+
610
+
611
+
612
+ .. [#rails-activejob-dependency] Serialization of BSON & Mongoid objects works best
613
+ if you explicitly send ``BSON::ObjectId``'s as strings, and reconstitute them in the job:
614
+
615
+ .. code-block:: ruby
616
+
617
+ record = Model.find(...)
618
+ MyJob.perform_later(record._id.to_s)
619
+
620
+ class MyJob < ApplicationJob
621
+ def perform(id_as_string)
622
+ record = Model.find(id_as_string)
623
+ # ...
624
+ end
625
+ end
0 commit comments