Without the magical id column in table

Dear all

In rails, the are some magical column such as id, created_at, updated_at can make things easier.

However, within my organization, due to whatever reason, the data type identity is not allowed to use. So, the magical id column cannot be used in my rails project. I know that there is some actions rely on the like http://localhost:3000/controller/action/123, where 123 is the :id...and in edit_path(:id), It seems that without the id column I cannot perform these actions.. Am I right?

Should I change other web framework in my project (but I love rails ^_^)? Or any workaround available in rails if my table without the id column? Is it really a matter for the CRUD action without id column?

Please give me some advices.

Thank you.

Valentino

Dear all

In rails, the are some magical column such as id, created_at,
updated_at can make things easier.

However, within my organization, due to whatever reason, the data type identity is not allowed to use. So, the magical id column cannot be
used in my rails project. I know that there is some actions rely on the
like http://localhost:3000/controller/action/123, where 123 is
the :id...and in edit_path(:id), It seems that without the id column I cannot
perform these actions.. Am I right?

Rails assumes very much that there is a primary key (as in a single
column that uniquely identifies rows i don't think it actually cares
whether it is labelled a primary key in the database), you don't have
to call it id though (see set_primary_key). I'm not sure what would
happen if the primary wasn't auto increment (or associated with a
sequence etc.) but you could give it a go.

Fred

You can use a UUID instead... never used it myself though.

google "rails uuid"

Hi there,

I have worked with legacy databases that had no 'id' column but had a different column as primary key. You only need to add the following code to your models:

  self.primary_key = 'your_primary_key_column_here'

I hope this helps.

Pepe