Rails:设置一个私有值,这样它只调用数据库一次
我有以下方法来检查用户是否具有管理员访问权限。
def has_admin_access?(user)
user.present? && gym_users.where(:role_id => [3, 4]).where(['user_id = ? AND date_ended IS NULL', user.id]).any?
end
当我想在一个页面上多次调用它时,问题就出现了。我该如何做到这一点,以便设置一个私有值并且仅在第一次进行数据库调用?
I have the following method to check if a user has admin access.
def has_admin_access?(user)
user.present? && gym_users.where(:role_id => [3, 4]).where(['user_id = ? AND date_ended IS NULL', user.id]).any?
end
The problem comes when I want to call this multiple times on a page. How can I do this so that I set a private value and only make the database call the first time?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以将结果存储在哈希中,如果您再次查找同一用户,则从哈希中返回结果。像这样:
You can just store the result in a hash, and if you look up the same user again return the result from the hash. Like this:
尝试:
更多信息
Try:
more information