Hi,
I am forced to use an old database with rails.

Relevant db structure;

mysql> select id,permission,incid from acl group by id;
+----+------------+-------+
| id | permission | incid |
+----+------------+-------+
|  1 |         58 |     1 |
|  2 |         57 |    25 |
|  3 |         57 |    32 |
+----+------------+-------+

Show create table acl:

CREATE TABLE `acl` (
id` int(4) NOT NULL,
.....
`incid` int(11) NOT NULL auto_increment,
  PRIMARY KEY  (`id`,`type`,`seq`,`incid`),
  UNIQUE KEY `incid` (`incid`)

So the primary key that I want to use in place of id is "incid"

"id" contains some acl ids and is not auto increment (has multiple
rows returned per one `id`).

My model looks like this:

class Acl < ActiveRecord::Base
  set_table_name :acl;
  set_primary_key :incid;
  def self.primary_key() 'incid'; end
  self.primary_key = 'incid';
  set_inheritance_column :ruby_id;
end


script/console
>> r = Acl.find(2);  <--  that's checking for `incid`
?> r.id
=> 2
>>

log:
Acl Load (0.3ms)   SELECT * FROM `acl` WHERE (`acl`.`incid` = 2)

script/console
>> r = Acl.find(31);
?> r.id
=> 31
 Acl Load (0.3ms)   SELECT * FROM `acl` WHERE (`acl`.`incid` = 31)


So, instead of r.id returning the value of the `id` field , it returns
the value for the incid field.

For the second example it should have returned `2` instead of `31`
which is actually the value of `incid`

mysql> select id,permission,incid from acl where incid='31';
+----+------------+-------+
| id | permission | incid |
+----+------------+-------+
|  2 |         57 |    31 |
+----+------------+-------+

What should my model look like to be able to get the value of the `id`
field?

Dan




--~--~---------~--~----~------------~-------~--~----~
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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to