- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个使用 Paranioa gem ( https://github.com/radar/paranoia ) 的模型,用于在数据库中保留已删除的 ActiveRecord 元素。 Paranioa 使用 deleted_at
列;当此列为 NULL
时,不会删除该对象。它使用默认范围工作,如下所示:
default_scope { where(:deleted_at => nil) }
我的问题是我想获取范围内的所有元素(包括已删除的元素):
class MyOtherModel < ActiveRecord::Base
has_many :paranoia_models
end
此声明生成如下查询:
SELECT * FROM `paranioa_models` WHERE `paranioa_models`.`deleted_at` IS NULL AND ...
用这样的函数很容易得到我所有的元素(包括删除的元素)
def paranioa_models_with_deleted
return self.paranioa_models.with_deleted
end
with_deleted
unscope 默认作用域。
我的问题是:如何直接在 :has_many
范围内取消 MyOtherModel 范围内的 default_scope 范围?
您的解决方案:
has_many :paranoia_models, -> { unscoped }
仅返回未删除的self.paranoia_models.unscoped
返回所有的 ParanoiaModel(包括属于其他人的 ParanoiaModel)最佳答案
你试过吗?
def paranoia_models
ParanoiaModel.unscoped { super }
end
关于ruby - 删除关联中的 default_scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23867467/
我有一个使用 Paranioa gem ( https://github.com/radar/paranoia ) 的模型,用于在数据库中保留已删除的 ActiveRecord 元素。 Paranio
在 ActiveRecord 中有一个 default_scope 类方法来指定默认范围。例如 class User false) end User.all # => SELECT * FROM u
我有一个如下所示的模型设置: class User has_many :items has_many :words, :through => :items end class Item b
我有一个具有以下 default_scope 的用户模型: default_scope where(account_id: Account.current_account.id) 如果我打电话User
假设我有一个 Post 模型和一个 Comment 模型。使用一种常见的模式,发布 has_many 评论。 如果 Comment 设置了 default_scope: default_scope w
Everywhere on the互联网上的人提到使用 Rails default_scope 是一个坏主意,而 stackoverflow 上 default_scope 的热门话题是关于如何覆盖它
嘿。在我的 Controller /索引操作中,我使用以下查询: @course_enrollments = current_user.course_enrollments 这就是我的 table 的
如何在rails控制台中查询时跳过default_scope 例如 class User { where.not(type: 'guest') } end 您还应该小心列名type,除非您将其用于单表
如果我有一个具有默认范围的 ActiveRecord::Base 模型: class Foo ["bar = ?",bar] end 有没有办法在不使用 default_scope 条件的情况下执行
我在访问范围时收到此错误。 这是 AR 模型 class StatisticVariable < ActiveRecord::Base attr_accessible :code, :name
我正在尝试在我的应用中实现 gem devise。在此之前,我的顶级模型是 Album,但现在它是 belongs_to :user(来自设计)。 然后我添加到albums_controller.rb
我在 mysql 下通过了以下测试(使用 FactoryGirl): test "order by title" do @library = create(:drawing_library
在我的模型 (pins.rb) 中,我有两个排序顺序: default_scope order: 'pins.featured DESC' #for adding featured posts to
在执行 ActiveRecord join 时尝试跳过 default_scope 时遇到一些问题。 尽管代码库非常大,但我只是展示基础知识,因为我认为它很好地说明了问题所在: class Clien
我在 rails 中使用 default_scope 来抽取任何具有 is_deleted = true 值的东西(任何具有这个值的东西都不应该显示,但我仍然想保留数据库中的行)。但是有一个 Cont
有什么方法可以在 where 条件下覆盖默认范围或以前的范围吗? (除了重构模型以不使用 default_scope 或使用 unscoped) 另外,为什么会这样?感觉这不是最令人期待或最直观的方法
我的应用程序不仅具有“用户”,而且还具有“管理员”和“ super 管理员”。由于所有这三个共享相同的属性,因此我只想使用一个带有附加属性“role”的表,该属性可以是“user”,“admin”或“
我尝试通过以下方式定义 default_scope: default_scope :joins => :product, :select => "catalog_products.*, product
我在弄清楚这一点时遇到了一些麻烦:我有一个模型 Machine在 locations 上有外键表,我想要 Machine 的默认范围按 location.name 排序.这可能吗? 最佳答案 是的,使
关于 Rails 2/3 的 default_scope 的问题。 在我的 Rails 3 项目中,我使用了很多 default_scope 来通过 created_at desc 进行排序。 所以首
我是一名优秀的程序员,十分优秀!