On Sunday, June 21, 2015 at 8:04:16 AM UTC-7, Andrew Burleson wrote:
>
> Given the following models:
>
> Job.many_to_one :worker
> Job.many_to_one :schedule
>
> Worker.one_to_many :work_order
>
> WorkOrder.many_to_one :worker
> WorkOrder.many_to_one :schedule
>
> A Schedule represents a timeframe, for example one week, and a WorkOrder 
> represents all the jobs for a specific worker for that specific schedule.
>
> It's easy enough to write a query for all the jobs that belong to a 
> specific work order:
>
> Job.where(schedule: work_order.schedule, worker: work_order.worker)
>
> ...and from the docs (
> http://sequel.jeremyevans.net/rdoc/files/doc/association_basics_rdoc.html) 
> it looks like you should be able to do this:
>
> WorkOrder.one_to_many :jobs, key: [:worker_id, :schedule_id]
> Job.many_to_one :work_order, key: [:worker_id, :schedule_id]
>
> But when trying this I get:
>
> mismatched number of keys: [:worker_id, :schedule_id] vs [:id] 
> (Sequel::Error)
>
> So, can you write an association like this, and if so how so?
>

You need to specify the :primary_key=>[:worker_id, :schedule_id] option as 
well, since that isn't the primary key of the associated class.

Thanks,
Jeremy  

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to