ruby on rails - How to get all documents and hide this which are expired if they are defined? -


i want hide past events if defined , other. how show documents if :once_at nil , if :once_at defined hide these ones expired?

my recent approach, shows events defined :once_at, (i tryed :once_at => nil, without results):

default_scope where(:once_at.gte => date.today) 

or (also not working)

default_scope excludes(:once_at.lte => date.today) 

when think date.today evaluated? if this:

default_scope where(:once_at.gte => date.today) 

date.today evaluated when class being loaded. never want happen, want date.today evaluated when default scope used , usual way make happen use proc or lambda scope:

default_scope -> { where(:once_at.gte => date.today) } 

the next problem documents don't have :once_at or explicit nil in :once_at. nil won't greater today you'd best check conditions separately :$or query:

default_scope ->   where(     :$or => [       { :once_at     => nil        },       { :once_at.gte => date.today }     ]   ) end 

Comments

Popular posts from this blog

commonjs - How to write a typescript definition file for a node module that exports a function? -

openid - Okta: Failed to get authorization code through API call -

thorough guide for profiling racket code -