Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

This project is archived and is in readonly mode.

has_many associations forced to have integer ids

#3515

In my app I am using uuids (strings) as primary keys for my tables. It seems that Rails 2.3.5 now forces you to use integer ids in has_many and habtm associations.

define_method("#{reflection.name.to_s.singularize}_ids=") do |new_value|
  ids = (new_value || []).reject { |nid| nid.blank? }.map(&:to_i)
  send("#{reflection.name}=", reflection.klass.find(ids).index_by(&:id).values_at(*ids))
end

If I try to assign ids and not whole objects, the integer conversion destroys the id strings and thus no association object can be found. Without the conversion everything works fine (again).

I added a patch with a small fix.

Reported by ronin-77928 (at lighthouseapp) · November 27th, 2009 @ 05:02 PM

State: stale
Milestone: none
Assigned to: nobody
Importance: none

Activity

  1. Rohit Arondekar
    Rohit Arondekar
    • State changed from new to stale
    • Importance changed from to

    Marking ticket as stale. If this is still an issue please leave a comment with suggested changes, creating a patch with tests, rebasing an existing patch or just confirming the issue on a latest release or master/branches.

    October 6th, 2010 @ 06:30 AM