gpt4 book ai didi

ruby-on-rails-3 - 如何删除 Arel 中的一些默认范围

转载 作者:行者123 更新时间:2023-12-04 06:57:26 25 4
gpt4 key购买 nike

假设我在表上有几个默认范围

class User < ActiveRecord::Base
default_scope where(:first_name => 'Allen') # I know it's not realistic
default_scope where(:last_name => 'Kim') # I know it's not realistic
default_scope where(:deleted_at => nil)
end

>> User.all
User Load (0.8ms) SELECT `users`.* FROM `users`
WHERE `users`.`first_name` = 'Allen'
AND `users`.`last_name` = 'Kim' AND (`users`.`deleted_at` IS NUL

L)

当我想不管 first_name 查找用户时,我唯一能做的就是取消它的范围并再次重新定义默认范围
User.unscoped.where(:deleted_at=>nil).where(:last_name=>"Kim")

有没有办法取消某些键的范围,如下所示?
User.unscoped(:first_name)

最佳答案

不,unscoped不接受参数。
似乎在您的情况下,您最好定义正常 scopes (原为: named_scopes )。

仅当您始终(或几乎)需要 default_scope 中定义的数据时,才应使用 default_scopes .

关于ruby-on-rails-3 - 如何删除 Arel 中的一些默认范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14567682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com