gpt4 book ai didi

ruby-on-rails-3 - 如何获取rails 3中所有数据库行的范围?

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

假设我们有以下设置:

class Post < ActiveRecord::Base
belongs_to :user
end

class User < ActiveRecord::Base
has_many :posts
end

进一步假设用户有一个 bool 属性“admin”,这表明他是否是全局管理员。

我想为 User 类编写一个方法(或范围?),称为“visible_posts”。如果用户不是管理员,它应该只返回自己的帖子。如果他是管理员,则该方法应返回系统中的所有帖子。

我的第一次尝试是这样的:

class User < ActiveRecord::Base

[...]

def visible_posts
if admin?
Post.all
else
posts
end
end

end

这里的问题是 Post.all 返回一个数组,但我更希望有一个 ActiveRecord::Relation,就像我从帖子中获得的那样,以便以后使用它。

是否有可能获得代表所有帖子的 ActiveRecord::Relation ?

最佳答案

我猜你可以在 Rails 中做 Post.scoped

稍后您可以调用 .all 来获取结果

关于ruby-on-rails-3 - 如何获取rails 3中所有数据库行的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7333198/

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