问题标签 [default-scope]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2781 浏览

ruby - 续集中的 default_scope

在 ActiveRecord 中有一个default_scope类方法来指定默认范围。例如

我怎样才能做到这一点Sequel::Model

编辑:

经过一番谷歌搜索,我最终找到了一些有用的信息。

然后生成的查询如下所示:

顺便说一句:相当于unscopedunfiltered

但是,有一个问题。如果您尝试更新从未过滤数据集获得的用户,它会尝试使用给定数据集更新用户。

所以我又回到了最初。有什么解决方法吗?

0 投票
2 回答
9161 浏览

yii - 引用 yii 中的关系应用默认范围

我找不到太多关于在 yii 中将默认范围应用于模型的文档,我想知道是否有人可以解释或指出我正确的方向。

我的问题的快速版本:

是否可以将关系添加到默认范围,或者默认为模型上的每个 AR 搜索添加“with”条件?

我的问题的长版本:

我的应用程序的快速摘要:

我有两个模型,provideritem。其中有 am:1 关系,提供者可以有许多项目,但每个项目只能有一个提供者。

到目前为止,我有这些关系:

在我的项目模型中,我已经有一个 defaultScope 过滤掉所有离线项目(即只显示设置为的项目offline = false):

我现在想要做的,也是过滤掉他们的提供者设置为离线的项目(即只显示provider.offline = false与 current 并排的项目item.offline = false)。

我尝试在 defaultScope 中加入提供者表:

但是 JOIN 在 ON 语句之后应用,并导致错误 ( CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'provider.offline' in 'on clause')。

我还尝试向 defaultScope 添加一个 with 条件:

但是我得到了同样的错误:SQLSTATE[42S22]: Column not found: 1054 Unknown column 'provider.offline' in 'on clause'`)。

有什么建议么?

0 投票
1 回答
168 浏览

ruby-on-rails - 在 Rails 3 中为每个模型添加 default_scope

我正在尝试为我的项目中的所有模型添加一个“default_scope”:

有没有办法自动为所有模型添加这个 default_scope ?

也许使用模块?

0 投票
2 回答
2968 浏览

inheritance - Rails:ActiveRecord 的 default_scope 和类继承

我的应用程序不仅有用户,还有管理员和超级管理员。由于所有三个共享相同的属性,我只想使用一个带有附加属性“角色”的表,该属性可以是“用户”、“管理员”或“超级管理员”:

现在我想做一些事情,比如SuperAdmin.all只获得超级管理员。使用 default_scope 似乎可以让我到达那里:

现在我也在向 Admin 添加一个 default_scope:

Aaaand... SuperAdmin.all 不再返回任何内容。这是为什么?

0 投票
2 回答
342 浏览

sql - 默认范围忽略条件中的动态值

在我的 Activity 模型中,我有一个默认范围:

问题出在 Log.get_subject_id 中,默认值为 0。这是我的 Log 模型:

当我通过控制器中的 Log.set_subject_id(10) 更改 @@subject_id 的值然后我尝试 Activity.all 时,它总是给我不好的结果。SQL:

哪里有问题?谢谢!

0 投票
0 回答
522 浏览

view - 如何在 Rails 3 中“取消范围”编辑路径和/或操作?

目前我正在使用设计开发一个简单的 Rails 3 Web 应用程序。当用户注册时,Account会创建一个。这是 Account 模型的本质:

以及 Person 模型的精髓:

如您所见,一个人(基本上是一个用户配置文件)是在创建帐户后创建的,默认published值为false. 注册后,用户登录并重定向到主页,其中包含edit_person_path(current_account.person).

在设置了default_scopefor Person aRouting Error: No route matches {:action=>"edit", :controller=>"people", :id=>nil}后,由于edit_person_path(current_account.person).

我对此的解决方案是更改edit_person_path(current_account.person)edit_person_path(Person.unscoped { current_account.person} ).

我现在遇到的问题是,尽管页面渲染得很好,但是当我单击编辑链接时,会引发以下异常:

暂时取消编辑操作范围的最佳方法是什么,我应该这样做PeopleController#edit吗?

0 投票
2 回答
2530 浏览

ruby-on-rails - 使用偏执狂的默认范围急切加载已删除的记录

我正在使用paranoia gem 来“软删除”记录。现在我需要为关联模型急切加载这些记录,其中一些可能已被删除。偏执狂将此添加default_scope到“偏执狂”模型中:

所以实际上,我有这些(简化的)模型:

我想要实现的是在访问订单时预先加载产品:

这(来自How to use unscoped on associated Relations in Rails3?)在这里不起作用:

我知道我可以创建一个自定义belongs_to关系来添加条件(如在Eager loading nested association and scope 中),但我找不到删除现有条件的方法,如果这可能的话。

问题:如何防止将默认范围应用于急切加载查询?

0 投票
1 回答
247 浏览

ruby-on-rails - Rails 3 多个 default_scope 字母数字

我的表中有一列是代码。它们的格式为 AAA-XXXX-YYYwhere

  • AAA是按字母顺序排列的
  • XXX是数字
  • YYY是数字

我想对我的 default_scope 使用字母排序AAA,然后是数字排序XXXX,然后是数字排序,YYY所以当我索引它们时,它们会像这样排序。

如果我对列进行字母数字排序,我将得到以下结果:

但 111 大于 2 使用数字排序。

编辑:AAA 的长度不固定。所以它可能是“AA”或“BBBB”或“CCC”。已经提到使用 SQL SUBSTRING,但位置并不总是设置。

EDIT2:我可能应该提到这种排序需要在 default_scope 上完成,所以当我访问 Object.all 时,它们默认以这种方式排序。

谢谢你的帮助!

0 投票
1 回答
1244 浏览

ruby-on-rails-3 - 覆盖 active_admin form.has_many 中的默认范围

给定一个具有多个附件的模型 Post,并且附件具有隐藏标志。在整个应用程序中,我想轻松地说 post.attachments 并且只获取可见的,所以我在 Attachment 模型中设置了一个默认范围(使用 squeel):

但是管理页面需要能够查看帖子的所有附件,而不仅仅是可见的附件(这样您就可以切换隐藏的复选框)。这样做的默认方式(在 admin/posts.rb 中)使用 default_scope 并且只允许我编辑可见的:

我知道我不能使用 default_scope 而是将其命名为 :visible,然后在任何地方(管理页面除外)都说 post.attachments.visible,但我不想这样做。

如何在管理页面上取消子附件的范围?

0 投票
0 回答
69 浏览

ruby-on-rails - 强制关闭模型的每个查询以及嵌套

我首先想到的是使用default_scope对每个请求强制一个条件,但它似乎不起作用。

例如,如果我有Product.include(:prices)它将不使用默认范围。我不确定它是否是正确的行为。

default_scope的价格是这样的:

我正在开发一种移植到 Rails 的“crm”,我们感兴趣的唯一价格类型是“正常”价格。我可以在任何地方编辑代码,但是每当需要从数据库中查询价格时,“强制”条件会简单得多。出于同样的原因,使用named_scope目前也不是替代方案,因为它可能需要大量重构。

更多信息,因为它“应该”工作但没有......

实际调用

产品

编辑

导轨 3.2.8