私が走るとき:
IpPermission.blacklist.pluck(:ip)
結果が得られます:
=> ["127.0.0.11012q", "50.36.46.48"]
ip_permissionsテーブルの行のいずれかを手動で変更して、IpPermission.blacklist.pluck(:ip)
再度実行した場合。更新された結果が表示されます。データベースから直接ではなく、キャッシュから結果をロードするべきではありませんか?
私のモデルは次のようになります。
class IpPermission < ActiveRecord::Base
validates_presence_of :ip, :note, :category
validates_uniqueness_of :ip, :scope => [:category]
validates :category, :inclusion => { :in => ['whitelist', 'blacklist'] }
def self.whitelist
Rails.cache.fetch('whitelist', :expires_in => 1.month) { self.where(:category => 'whitelist') }
end
def self.blacklist
Rails.cache.fetch('blacklist', :expires_in => 1.month) { self.where(:category => 'blacklist') }
end
end