Re: [DataMapper] Re: Sort records by column in another table?

2012-09-04 Thread Arthur M. Meskelis
armanx, I think that I found it.

BookReader.first.checkouts.all(links:
[Checkout.relationships[:book].inverse], order:
[DataMapper::Query::Direction.new(Book.properties[:published], :desc)])

freakish

But it retrieves me a collection of Checkout objects, ordered by
:published.desc .

is that what you want ?

so long

http://datamapper.lighthouseapp.com/projects/20609/tickets/1164-manytoone-relationships-form-bad-sql-with-links


2012/9/4 Arthur M. Meskelis 

> oh, sorry.
> That's a hard to do.
>
> I found that site
> http://rhnh.net/2010/12/01/ordering-by-a-field-in-a-join-model-with-datamapper
>  maybe
> help.
>
> Anyway, I will continue to search.
>
>
> 2012/9/4 armanx 
>
>> That doesn't quite accomplish what I'm trying to do.
>>
>> BookReader.first.books.all(:**order => [:published.desc])
>>
>>
>> gives me Books; what I'm after are Checkouts, sorted by Book's :published
>> column
>>
>>
>> On Monday, September 3, 2012 12:54:31 AM UTC-7, armanx wrote:
>>>
>>> I'm looking to sort records in one table, based on a date column in
>>> another table. For example, I have the following tables:
>>>
>>> class BookReader
 include DataMapper::Resource
  has n, :checkouts
 has n, :books, :through => :checkouts
 property :id, Serial
 property :name, String
  property :city, String
 end
 class Book
 include DataMapper::Resource
 has n, :checkouts
  has n, :readers, :through => :checkouts
 property :id, Serial
 property :title, String
  property :author, String
 property :published, Date
 end
 class Checkout
 include DataMapper::Resource
  belongs_to :bookreader, :key => true
 belongs_to :book, :key => true
 property :created_at, DateTime
  property :updated_at, DateTime
 end
>>>
>>>
>>> (This assumes each BookReader can only check out each Book once).
>>> I can select all the Book objects belonging to a particular BookReader:
>>>
>>> checkouts = BookReader.first.checkouts
>>>
>>>
>>> Now, I want to sort these based on the :published date of the Book
>>> object. E.g.:
>>>
>>> SELECT
 c.*, b.date
 FROM
 "checkouts" as c
 JOIN "books" as b on b.id = c.book_id
 WHERE
 c.bookreader_id = 1
 ORDER BY
 b.date DESC
>>>
>>>
>>> Any way to do this directly through DM?
>>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "DataMapper" group.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msg/datamapper/-/Nayx-lp5oksJ.
>>
>> To post to this group, send email to datamapper@googlegroups.com.
>> To unsubscribe from this group, send email to
>> datamapper+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/datamapper?hl=en.
>>
>
>
>
> --
> --
>  1. Notebook para você ficar livre e programar a vontade: R$ 2300
>  2. Curso de Programação/SysAdmin/DBA: R$ 5000
>  3. Pedir a solução pronta para um problema numa lista de discussão: Não
> tem preço !
>
> E para todas as outras existe RTFM, STFW e  LMGTFY
>



-- 
--
 1. Notebook para você ficar livre e programar a vontade: R$ 2300
 2. Curso de Programação/SysAdmin/DBA: R$ 5000
 3. Pedir a solução pronta para um problema numa lista de discussão: Não
tem preço !

E para todas as outras existe RTFM, STFW e  LMGTFY

-- 
You received this message because you are subscribed to the Google Groups 
"DataMapper" group.
To post to this group, send email to datamapper@googlegroups.com.
To unsubscribe from this group, send email to 
datamapper+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/datamapper?hl=en.



Re: [DataMapper] Re: Sort records by column in another table?

2012-09-04 Thread Arthur M. Meskelis
oh, sorry.
That's a hard to do.

I found that site
http://rhnh.net/2010/12/01/ordering-by-a-field-in-a-join-model-with-datamapper
maybe
help.

Anyway, I will continue to search.

2012/9/4 armanx 

> That doesn't quite accomplish what I'm trying to do.
>
> BookReader.first.books.all(:**order => [:published.desc])
>
>
> gives me Books; what I'm after are Checkouts, sorted by Book's :published
> column
>
>
> On Monday, September 3, 2012 12:54:31 AM UTC-7, armanx wrote:
>>
>> I'm looking to sort records in one table, based on a date column in
>> another table. For example, I have the following tables:
>>
>> class BookReader
>>> include DataMapper::Resource
>>> has n, :checkouts
>>> has n, :books, :through => :checkouts
>>> property :id, Serial
>>> property :name, String
>>> property :city, String
>>> end
>>> class Book
>>> include DataMapper::Resource
>>> has n, :checkouts
>>> has n, :readers, :through => :checkouts
>>> property :id, Serial
>>> property :title, String
>>> property :author, String
>>> property :published, Date
>>> end
>>> class Checkout
>>> include DataMapper::Resource
>>> belongs_to :bookreader, :key => true
>>> belongs_to :book, :key => true
>>> property :created_at, DateTime
>>> property :updated_at, DateTime
>>> end
>>
>>
>> (This assumes each BookReader can only check out each Book once).
>> I can select all the Book objects belonging to a particular BookReader:
>>
>> checkouts = BookReader.first.checkouts
>>
>>
>> Now, I want to sort these based on the :published date of the Book
>> object. E.g.:
>>
>> SELECT
>>> c.*, b.date
>>> FROM
>>> "checkouts" as c
>>> JOIN "books" as b on b.id = c.book_id
>>> WHERE
>>> c.bookreader_id = 1
>>> ORDER BY
>>> b.date DESC
>>
>>
>> Any way to do this directly through DM?
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "DataMapper" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/datamapper/-/Nayx-lp5oksJ.
>
> To post to this group, send email to datamapper@googlegroups.com.
> To unsubscribe from this group, send email to
> datamapper+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/datamapper?hl=en.
>



-- 
--
 1. Notebook para você ficar livre e programar a vontade: R$ 2300
 2. Curso de Programação/SysAdmin/DBA: R$ 5000
 3. Pedir a solução pronta para um problema numa lista de discussão: Não
tem preço !

E para todas as outras existe RTFM, STFW e  LMGTFY

-- 
You received this message because you are subscribed to the Google Groups 
"DataMapper" group.
To post to this group, send email to datamapper@googlegroups.com.
To unsubscribe from this group, send email to 
datamapper+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/datamapper?hl=en.