Skip to content
This repository has been archived by the owner on Mar 30, 2022. It is now read-only.

Accessing a records associations with a scope #407

Open
simkessy opened this issue Nov 10, 2015 · 2 comments
Open

Accessing a records associations with a scope #407

simkessy opened this issue Nov 10, 2015 · 2 comments

Comments

@simkessy
Copy link

I'm trying to use a scope to return records based on the value of a association column. I can't seem to figure it out unfortunately.

Basically each Availability is associated with a Venue, through a Facility
Each Venue has a column called notice_time which is an integer.
I'm trying to return Availabilities where the Venue it's associated with has a notice_time that is after the current time.

class Availability < ActiveRecord::Base
  belongs_to :facility
  has_one :venue, through: :facility

  scope :after_notice_time, -> {joins{venue}.where{start_time >= (self.venue.notice_time.hours.from_now)}}
end
@stephenprater
Copy link

Note that things within where clauses are key paths, not model calls (so you can't use cute Rubyisms like hours.from_now on column values.

When you say notice_time is an integer - is it a timestamp or an interval? If it's an interval, you'll need to use the database interval functions to calculate if the interval has passed.

@mckinnsb
Copy link

You can use hours.from_now if you use it in a my{} block. Squeel will convert the time correctly for you.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants