所以我有一个简单的范围:范围为私人职位
scope :visible_to, -> (user) {user && (user.premium? || user.admin?) ? all : where(:private => false || nil) }
的想法是,它显示了(对指数)私人和公共职位的名单,如果用户角色等于Premium
或Admin
。当我以管理员或高级身份登录时,似乎正常工作。但是如果我没有登录或以Standard
用户(默认角色)登录,则只显示无帖子。我如何才能使它适用于标准用户和访客用户?
你是正确的,它的工作非常感谢你。几个帖子因私人而无效的原因是因为它们来自我没有指定真或假的种子数据。对不起:( –
你可以在数据库中指定一个默认值,或者在播种时将nil转换为false,这将简化你的代码。 –