I'm trying to have a solution via the use of helpers.
In DeviceHelper,
I've created a function links_column. The goal is to give link for the
right Links Table, in nested mode. For that, I first recreate the
good
view and add a link. The link is wworking correctly in a non nested
mode.
In a nested mode, I've got an error:
ActiveScaffold::MalformedConstraint in LinksController#show_list
Malformed constraint `Link#aspen_topo_file_id'. If it's a legitimate
column, and you are using a nested scaffold, please specify or double-
check the reverse association name.
This is coming from vendor/plugins/active_scaffold/lib/active_scaffold/
actions/nested.rb:33:in `include_habtm_actions'

I have a Model named AspenTopoFile but the relationship between this
Model and the Link model is a has_many/belongs_to one. So I don't
understand why this error is raised...

Do you know why?

Here is my helper method:

def links_column(record)
 if record.src_links.count + record.dst_links.count > 3
      if record.src_links.count >= 3
        "<a href=/links/show_list/#{record.id}?_method=get&eid=#{params
[:eid]}&nested=true&parent_model=Device>" + record.src_links.first
(3).collect{|ac| h(ac.name)}.join(', ')  +  " ... ("  +
(record.src_links.count + record.dst_links.count).to_s + ")" + "</a>"
      else
        i = record.src_links.count
        "<a href=/links/show_list/#{record.id}?_method=get&eid=#{params
[:eid]}&nested=true&parent_model=Device>" + record.src_links.first
(3).collect{|ac| h(ac.name)}.join(', ') + record.dst_links.first(3-
i).collect{|ac| h(ac.name)}.join(', ') +  " ... ("  +
(record.src_links.count + record.dst_links.count).to_s + ")"
      end
    else
      if record.src_links.count >= 3
        "<a href=/links/show_list/#{record.id}?_method=get&eid=#{params
[:eid]}&nested=true&parent_model=Device>" + record.rc_links.first
(3).collect{|ac| h(ac.name)}.join(', ')
      else
        i = record.src_links.count
        "<a href=/links/show_list/#{record.id}?_method=get&eid=#{params
[:eid]}&nested=true&parent_model=Device>" + record.src_links.first
(3).collect{|ac| h(ac.name)}.join(', ') + record.dst_links.first(3-
i).collect{|ac| h(ac.name)}.join(', ')
      end
    end
end

On 1 juil, 15:44, Sylvain <[email protected]> wrote:
> On 1 juil, 12:57, "Sergio Cambra .:: entreCables S.L. ::."
>
> <[email protected]> wrote:
> > On Miércoles, 1 de Julio de 2009 11:53:28 Sylvain escribió:
>
> > > Hi again,
> > > I have two Models has follow:
>
> > > Class Device
> > > has_many :links, :foreign_key => "src_device_id"
> > > has_many :links, :foreign_key => "dst_device_id"
>
> > This is wrong, you can't have two associations with the same name, rails 
> > will
> > ignore the first association. If you try in the console (script/console)
> > Device.first.links you can see SQL generated by rails will be use
> > dst_device_id.
>
> One question about that,
> I've done taht in order to be OK with rails:
>
> Class Device
> has_many :src_links, :class_name => "Link", :foreign_key =>
> "src_device_id"
> has_many :dst_links, :class_name => "Link", :foreign_key =>
> "dst_device_id"
>
> Now I would like to have column 'Link' which would behave like a
> normal "has_many" columns (i.e. ability to click and to see the links)
>
> So first I did that:
>
> def links
>    src_links + dst_links
> end
>
> But that doesn't do what I want...
> Is there any other way to do that?
>
> Thanks in advance,
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to