Не могу установить первичный ключ UUID на Rails 3.1 - PullRequest
1 голос
/ 12 сентября 2011

Старый код, отлично работает в Rails 3.0 на JRuby 1.6.4 с PostgreSQL 9.0:

class User < ActiveRecord::Base
    before_validation(:on => :create) do
        self.id = generate_random_uuid
    end

    # Mode code, including a definition for generate_random_uuid that works.
end 

Rails 3.1 молча не может установить первичный ключ.

Немного покопался и придумал update_column, но это отказывается что-либо делать, пока запись не будет сохранена. К сожалению, не так много людей используют первичные ключи UUID в Rails-land, поэтому Googles не так полезны.

Кто-нибудь еще работает с подобной установкой, которая выяснила правильную магию обратного вызова, чтобы получить 3.1, чтобы играть в мяч?

1 Ответ

2 голосов
/ 06 октября 2011

Что ж, только сегодня заметил, что приложение, включающее несколько устаревших баз данных, перестало работать после обновления с 3.0 до 3.1 именно по этой причине, то есть первичный ключ больше не имеет значения id для устаревших баз данных (и т. П. ?).

Моим рабочим решением было явно дать

set_primary_key :id

в каждой из рассматриваемых моделей.

С уважением Michael

...