Saturday, December 12, 2009

[Rails] Re: dynamic :conditions for activerecord associations?

I suspected that adding with << wouldn't work; does using the build or
create method work?

--Matt Jones

On Dec 11, 7:26 am, Jarmo Pertman <jarm...@gmail.com> wrote:
> Hello.
>
> Thank you for your suggestion.
>
> I tried it and it worked for finding, but adding doesn't work
> unfortunately.
>
> Jarmo
>
> On Dec 9, 5:06 pm, Matt Jones <al2o...@gmail.com> wrote:
>
>
>
> > On Dec 8, 10:05 am, Jarmo Pertman <jarm...@gmail.com> wrote:
>
> > > Hello.
>
> > > I'm facing the problem where I have something like this:
> > > class Person
> > >   has_many :things,
> > >            :conditions => "dynamic conditions depending of the object"
> > > end
>
> > > So, the problem is that i would like to have a dynamic condition which
> > > depends upon the object. In my particular case, it is something like
> > > this:
> > >   has_many :things,
> > >            :conditions => {:country_code => 'country_code_string'}
>
> > > So, let's say that the country_code_string might be 'UK', 'US' and so
> > > on. How can I make this kind of association?
>
> > On Dec 8, 10:05 am, Jarmo Pertman <jarm...@gmail.com> wrote:
>
> > > Hello.
>
> > > I'm facing the problem where I have something like this:
> > > class Person
> > >   has_many :things,
> > >            :conditions => "dynamic conditions depending of the object"
> > > end
>
> > > So, the problem is that i would like to have a dynamic condition which
> > > depends upon the object. In my particular case, it is something like
> > > this:
> > >   has_many :things,
> > >            :conditions => {:country_code => 'country_code_string'}
>
> > I haven't tried this, but you may want to give it a shot. You could
> > set up a method on Person that scopes the association:
>
> > class Person
> >   has_many :things
> >   def things_for_country(code)
> >     things.scoped(:conditions => { :country_code => code })
> >   end
> > end
>
> > And then calling it would look like (assume @person is a Person
> > object):
>
> > @person.things_for_country('US')
>
> > This will certainly work for *finding* records; I'm not 100% sure what
> > will happen with building/adding objects - it is likely to work, but
> > you should definitely write some tests...
>
> > Hope this helps!
>
> > --Matt Jones

--

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

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate