使用ActiveRecord搜索时覆盖Deleted_at

Bai*_*ith 2 activerecord ruby-on-rails

在某些情况下,我想指定我的ActiveRecord结果应包括delete_at不为null的项目。

例如,说我搜索以下已删除的记录:

 item =Item.find(12345)
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

 ActiveRecord::RecordNotFound: Couldn't find Item with id=12345 [WHERE ("items"."deleted_at" IS NULL)]
Run Code Online (Sandbox Code Playgroud)

是否可以设置一个参数,以返回delete_at值不为null的活动记录项?

pra*_*gma 5

您可以通过对模型应用“无范围”方法来禁用所有范围,例如:

item = Item.unscoped.find(12345)
Run Code Online (Sandbox Code Playgroud)

http://guides.rubyonrails.org/active_record_querying.html#removing-all-scoping