首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么在Rails 3.1上使用带范围的合并方法不再有效?

在Rails 3.1中,带范围的合并方法不再有效的原因是Rails 3.1引入了Active Record的新查询方式,称为Arel。Arel是一个更强大、更灵活的查询构建器,它提供了一种更简洁、更易于理解的方式来构建复杂的数据库查询。在Rails 3.1中,带范围的合并方法已经被弃用,因为它们与Arel的设计原则不符。

为了解决这个问题,您可以使用以下方法:

  1. 使用where方法代替带范围的合并方法。例如,如果您之前使用了User.scoped_by_age(18),现在可以使用User.where(age: 18)
  2. 使用Arel构建更复杂的查询。例如,如果您需要在查询中使用多个条件,可以使用Arel构建查询,如下所示:
代码语言:ruby
复制
users = User.arel_table
users_with_age_18_and_name_john = users.where(users[:age].eq(18).and(users[:name].eq('John'))).to_a
  1. 如果您仍然需要使用带范围的合并方法,可以将其添加到您的模型中。例如,在User模型中添加以下代码:
代码语言:ruby
复制
scope :scoped_by_age, ->(age) { where(age: age) }

然后,您可以像以前一样使用User.scoped_by_age(18)

总之,带范围的合并方法在Rails 3.1中不再有效,因为它们与Arel的设计原则不符。您可以使用where方法或Arel构建更复杂的查询来替代它们。如果您仍然需要使用带范围的合并方法,可以将其添加到您的模型中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 儿童多动症亚型的脑结构改变和相关症状

    注意缺陷多动障碍(ADHD)被认为是异质性的,但描述这种异质性的最佳方法尚不清楚。尽管大量的证据表明,注意力不集中和合并两种不同类型的注意力缺陷多动障碍具有不同的认知和行为特征,以及潜在的神经生物学,但我们目前缺乏这些亚型是否反映了分离的大脑结构变化的信息。结构磁共振成像扫描(N = 234),诊断和人口统计学信息从ADHD-200数据库中获得。在这个样本中,138人是典型发育的人,37人是多动症合并患者,59人是注意力不集中的患者。采用Freesurfer分割方法测量皮层厚度、面积和体积、皮层下体积和海马区体积。注意缺陷多动障碍患者的临床症状较注意缺陷多动障碍合并患者轻,但认知损伤较注意缺陷多动障碍合并患者严重。此外,在不同亚型的注意力缺陷多动障碍中发现了可分离的脑结构改变,特别是与正常发育的人相比,注意力缺陷多动障碍合并患者的皮层下体积减少。临床症状主要与较小的右侧_尾侧前扣带回厚度和左侧苍白球体积有关,而言语智商损伤与较小的右侧_脑岛面积密切相关。这些结果表明,ADHD合并和-注意力不集中患者在临床症状和灰质损伤方面存在显著差异。这支持了越来越多的证据表明ADHD-注意力不集中亚型的异质性和大脑结构差异的证据。

    02
    领券