Hi there,
I''ve got a table construction like this:
presentation contactstate
Hilton new
Mc Donalds emailed
etc. called
visited
etc.
Now i''ve created an join table presentationcontactstate with extra
fields like comment and date time. so i know for example when i called a
specific presentation.
Now i want to get all the presentations that are in state emailed.
I now got in my contactstate model has_and_belongs_to_many
:presentation, :join_table => ''presentationcontactstates'',
:foreign_key
=> ''fkcontactstateID'', :association_foreign_key =>
''fkpresentationID''
So with Contactstate.find(:all, conditions => ''contactstate IN
(1,3,6)'').presentations i''ve got them. But now i want to
filter those
results with for example city = ''New York''
There i get stuck...
Does anyone know how to do this?
Thanks in advance.
--
Posted via http://www.ruby-forum.com/.
Daan wrote:> Now i want to get all the presentations that are in state emailed. > ... > Does anyone know how to do this?Here''s something I wrote about how to do just that using a join model (has_many :through association). http://blog.hasmanythrough.com/articles/2006/03/01/association-goodness-2 -- Josh Susser http://blog.hasmanythrough.com -- Posted via http://www.ruby-forum.com/.
Thanks for you reply but i''ve got the following problem. // In my c= Contactstate.find(:all, conditions => ''contactstate IN (1,3,6)'') i will get an array of contactstates. And each contacstate object got presentations. But i want all the presentations. So i want something like Contactstate.find(:all, conditions => ''contactstate IN (1,3,6)'').presentations but now it is Contactstate.find(:all, conditions => ''contactstate IN (1,3,6)'')[0].presentations -- Posted via http://www.ruby-forum.com/.
Daan wrote:> Thanks for you reply but i''ve got the following problem. > > // > In my c= Contactstate.find(:all, conditions => ''contactstate IN > (1,3,6)'') > > i will get an array of contactstates. And each contacstate object got > presentations. But i want all the presentations. So i want something > like > > Contactstate.find(:all, conditions => ''contactstate IN > (1,3,6)'').presentations > > but now it is > > Contactstate.find(:all, conditions => ''contactstate IN > (1,3,6)'')[0].presentationsJust replace the condition in my example with one that does the test you want: find(:all, :conditions => ["contacts.state IN ?", states]) -- Josh Susser http://blog.hasmanythrough.com -- Posted via http://www.ruby-forum.com/.