gpt4 book ai didi

ruby-on-rails - 如何在 Rails 3 中取消关联记录的范围

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

我在让范围界定在 Rails 中正常工作时遇到了一些麻烦。

我的模型:

class User < ActiveRecord::Base
default_scope :conditions => 'users.deleted_at IS NULL'


class Feed < ActiveRecord::Base
belongs_to :user, :foreign_key => :author_id

当我调用以下内容时:
feeds = Feed.includes(:user)

我想跳过用户的 default_scope。所以我试过:
feeds = Feed.unscoped.includes(:user)

但这并没有从用户中删除范围。关于如何使其工作的任何建议?谢谢

最佳答案

您可以使用 .unscoped 来完成此操作。以块形式,如文档所示 here :

User.unscoped do
@feeds = Feed.includes(:user).all
end

请注意,默认范围是否适用取决于实际执行查询时您是否在块内。这就是为什么上面使用 .all ,强制执行查询。

因此,虽然上述有效,但这不会 - 查询在 .unscoped 之外执行块和默认范围将适用:
User.unscoped do
@feeds = Feed.includes(:user)
end
@feeds #included Users will have default scope

关于ruby-on-rails - 如何在 Rails 3 中取消关联记录的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14445812/

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