- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
如这里所述:
http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
inverse_of 似乎告诉 Rails 缓存内存关联并最小化数据库查询。他们的例子是:
class Dungeon < ActiveRecord::Base
has_many :traps, :inverse_of => :dungeon
has_one :evil_wizard, :inverse_of => :dungeon
end
class Trap < ActiveRecord::Base
belongs_to :dungeon, :inverse_of => :traps
end
他们立即跟进:
for `belongs_to` associations `has_many` inverse associations are ignored.
所以我有几个问题。
has_many
是否忽略了 belongs_to
的反向关联?如果是这样,他们的例子有何意义?它不应该什么都不做吗?据我所知(假设它做任何事情)所有这允许做的是:
dungeon.traps.first.dungeon
对 .dungeon
的最终调用不会生成一个全新的查询,而只是达到内存关联。假设这是正确的,为什么我永远不想要这种行为?为什么我不把 inverse_of:
放在每个关联上?
最佳答案
我开始撰写有关 Rails 变形器的文章,以及当关联不是模型的直接变形时如何使用 inverse_of 来指示它是什么。但后来我滚动到你提到的部分,这就是我的看法。假设你有类似的东西:
# let's pick a dungeon
d = Dungeon.first
# say you find also find a trap that belongs to this particular d
t = Trap.find(...)
# then t.dungeon is the exact same object as d
d == t.dungeon
当然 dungeon.traps.first.dungeon
没有任何意义,我怀疑这就是它存在的原因。就我个人而言,我不知道我会在哪里以及如何使用它,但他们给出的例子似乎可以满足一个用例。它是这样的:
# you have an attribute level on dungeon
d.level # => 5
# now say you have a comparison after a modification to level
d.level = 10
# now without inverse_of the following thing occurs
d.level # => 10
t.dungeon.level # => 5
# d was updated and since t.dungeon is a whole different object
# it doesn't pick up the change and is out of sync but using invers_of you get
d.level # => 10
t.dungeon.level # => 10
# because d and t.dungeon are the very same object
希望澄清事情。
关于ruby-on-rails - 为什么我不想到处使用 inverse_of?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14927952/
当我使用 has_one 时,它工作得很好,但在 has_many 上却不行。在这里您可以看到 object_id 不同,因为它运行了另一个 SQL 来再次获取它。 ruby-1.9.2-p290
如这里所述: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html inverse_of 似乎告
来自 Rails Guide : There are a few limitations to inverse_of support: They do not work with :through a
根据documentation for ActiveRecord::Associations::ClassMethods , ActiveRecord 可以自动判断一个 belongs_to一个模块的
我有 2 个这样的模型: class User :user validates_length_of :user_services, :maximum => 3 end class UserS
inverse_of 似乎在 after_initialize 回调中不起作用 class User :user end class Face :faces after_initialize
什么 inverse_of在 mongoid 协会中是什么意思?我可以通过使用它而不是没有它的关联来获得什么? 最佳答案 在简单的关系中,两个模型只能以一种方式关联,关系的名称自动为其关联的模型的名称
我正在尝试理解inverse_of,但我不明白。 生成的 sql 是什么样子的(如果有的话)? 如果与 :has_many、:belongs_to 和 :has_many_and_belongs_to
我是第一次使用 Rails 4 开发 Web 应用程序。我正在使我所有的模型关联成为双向的,并在任何允许的地方使用 inverse_of。 通过阅读文档,我形成了这样的印象,即这可能是最佳实践,但从来
我有以下设置 class Player :player do def in_hand find_all_by_location('hand') end end end
我有这样一个模型: class Thing < ApplicationRecord belongs_to :thing has_many :things end 在 rails 5 中这是有效
我已经在这个问题上撞了一段时间了。同时保存新推荐(父对象)和约会(子对象)时会出现问题。我对其他嵌套对象做了类似的处理,但似乎无法使其与单表继承——约会表一起工作。出于某种原因,inverse_of
在文档中它说你可以使用 inverse_of: nil 但并没有真正描述用例: http://mongoid.org/en/mongoid/docs/relations.html#has_and_be
我无法在创建时让inverse_of在连接模型上工作。我不确定这是一个错误还是只是没有实现。我有以下模型: class Challenge :group_challenges has_many
该文档暗示 inverse_of 将适用于除多态关联之外的所有内容。 http://api.rubyonrails.org/classes/ActiveRecord/Associations/Clas
我在不同的地方都读过它在某些情况下会自动推断出来,但是我发现关于此功能的文档很难理解。谁能阐明一些原则? 特别是Rails何时可以推断,Rails何时不能推断逆? 我想考虑 多态关联 单表继承(例如B
我有两个具有可选关系的模型 has_many - belongs_to,如下所示: class Journey < ApplicationRecord has_many :activities,
我一直在阅读有关 inverse_of 的文章,而我在网上看到的所有内容似乎都不一致并使我感到困惑。如果你看 here ,你可以看到 There are a few limitations to in
我有一个“has_many”关系的问题,我从 ActiveRecord 中得到一个随机异常: product = Product.create!(valid_attributes) product.p
嗯,标题是不言自明的。但是,让我详细说明一下。首先,我正在使用 Mongoid,这是一个用于在 Rails 应用程序中使用 MongoDB 的 Gem。 #1) 我有一个大集合,其中包含有关 map
我是一名优秀的程序员,十分优秀!