Hi dschruth,
try:
has_many :kids_m, :conditions => "kids.sex = 'male'", :source
=>:kids, :foreign_key => 'mom_id'
has_many :kids_f, :conditions => "kids.sex = 'female'", :source
=>:kids, :foreign_key => 'dad_id'

if that doesn't work...You may want to remodel the DB and include a PK
in the joining table then use a :through association. (which is
somewhat limited using AS unfortunately). Or use a view with the
joining sql for the join happening in the database.
my .02
coalex


On Dec 17, 8:51 am, "Sergio Cambra .:: entreCables - Symbol Servicios
Informáticos S.L. ::." <[email protected]> wrote:
> El Tuesday 16 December 2008 18:43:08 dschruth escribió:
>
>
>
> > Thanks Sergio.
>
> > But I've already tried using "to_label"  but it didn't make a
> > difference.   And after reading our link I realized it shouldn't make
> > a difference because I'm already using ":name" in every table already.
>
> > I think I just need to find a way to turn a "has many" foreign key
> > into a link.  something like:
>
> >   def kids
> >       collect.link(kids_m).join(",")
> >   end
>
> > but, of course this doesn't work because I'm still a ruby novice.
>
> > Dave
>
> I think I don't understand your problem. Is your problem you get
> #<Kid:0x2a99372f08> instead of kid's name?
>
>
>
>
>
> > On Dec 16, 1:14 am, "Sergio Cambra .:: entreCables - Symbol Servicios
>
> > Informáticos S.L. ::." <[email protected]> wrote:
> > > El Monday 15 December 2008 20:33:11 dschruth escribió:
> > > > I'm building a composite association link out of two foreign keys to
> > > > the same table.
>
> > > > And I've tried three approaches none of which are working.
> > > > -----------------------------------------------------------------------
> > > >---- --------- class Parent < ActiveRecord::Base
>
> > > >   has_many :kids_m, :foreign_key => :mom_id, :class_name => "Kid"
> > > >   has_many :kids_f, :foreign_key => :dad_id, :class_name => "Kid"
>
> > > > # define the single composite association column
> > > >   def kids
> > > >     if (sex == "male")
> > > >       kids_m
> > > >     else
> > > >       if sex == "female"
> > > >         kids_f
> > > >       end
> > > >     end
> > > >   end
>
> > > > end
> > > > -----------------------------------------------------------------------
> > > >---- -------
>
> > > > But this results in :
> > > > #<Kid:0x2a99372f08>#<Kid:0x2a99371658>... etc
>
> > > > I tried turning these into links using:
> > > > ------------------------------------------------------
> > > > module ParentsHelper
> > > >   def solid_secondary_analyses_column(record)
> > > >     record.kids_m.first(3).collect{|kid_m| h(kid_m)}.join(', ')   #BUT
> > > > NO LINK!!!
> > > >      # can somebody tell me how to get "link_to" working with this?
> > > >   end
> > > > end
> > > > ------------------------------------------------------
>
> > > > I've also tried just
> > > > -----------------------------------------------------------------------
> > > >---- -- class Parent < ApplicationController
> > > >   config.columns[:kids].set_link('nested', :parameters =>
> > > > {:associations => :kids_m})
> > > > end
> > > > -------------------------------------------------------------------
> > > > which works!  but only for one association... which brings us back to
> > > > the original problem....
>
> > > > Any Ideas on how to do this?
>
> > > Define a to_label method in your
> > > model:http://github.com/activescaffold/active_scaffold/wikis/describing-r
> > >ec...
>
> > > --
> > > Sergio Cambra .:: entreCables - Symbol Servicios Informáticos S.L. ::.
> > > Nicolás Guillén 6, locales 2 y 3. 50.018 Zaragoza
> > > T) 902 021 404 F) 976 52 98 07 E) [email protected]
>
> --
> Sergio Cambra .:: entreCables - Symbol Servicios Informáticos S.L. ::.
> Nicolás Guillén 6, locales 2 y 3. 50.018 Zaragoza
> T) 902 021 404 F) 976 52 98 07 E) [email protected]
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"ActiveScaffold : Ruby on Rails plugin" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/activescaffold?hl=en
-~----------~----~----~----~------~----~------~--~---

  • cu... dschruth
    • ... Sergio Cambra .:: entreCables - Symbol Servicios Informáticos S.L. ::.
      • ... dschruth
        • ... Sergio Cambra .:: entreCables - Symbol Servicios Informáticos S.L. ::.
          • ... coalex
            • ... sanjayayogi

Reply via email to