Я пытаюсь иметь модель/таблицу с дублирующейся информацией. Причиной этого является то, что одни и те же данные могут быть записаны в таблицу под разными пользователями и найдены для каждого пользователя. Тем не менее, я хочу быстрый простой способ определить, какая информация является дубликатом другой информации. Я думаю, что лучший способ сделать это - иметь тип item_id, который увеличивается с каждым «набором» записей в таблицу. Есть ли способ сделать это, не включая другую таблицу, которая хранит информацию, не приписывая ее пользователям?Non-auto-increment rails/postgresql column
0
A
ответ
0
На самом деле то, что я искал была последовательность PostgreSQL. Вот код, который я закончил с использованием в моей миграции
def up
ActiveRecord::Base.connection.execute("create sequence action_id_seq;")
end
def down
ActiveRecord::Base.connection.execute("drop sequence action_id_seq;")
end
И тогда, когда запрос я использую
Action.find_by_sql("SELECT NEXTVAL('action_id_seq') AS action_id").first.event_id
Для моих целей это работает довольно хорошо, и я могу использовать его, чтобы иметь уникальный идентификатор, для которого я контролируйте приращение.
0
Это, как я установил бы свои ассоциации до:
class User < ActiveRecord::Base
has_many :records
end
class Record < ActiveRecord::Base
belongs_to :user :foreign_key => user_id
end
Тогда вам придется установить user_id атрибут идентификатор CURRENT_USER перед сохранением записи.
Вы можете получить строки с помощью:
User.first.records
Record.first.user
Это не совсем то, что я ищу. «Наборы» не определяются пользователем, а определяются действием, которое создает данные. Так, например, пользователь, создавший запись в блоге, будет генерировать две записи, каждая из которых содержит одни и те же данные, но те, чей владелец_ид был пользователем и тот, чей владелец_ид был продуктом. Я хочу присвоить этим двум записям уникальный идентификатор – jrbalsano
, пожалуйста, включите вашу существующую модель и создайте действие, чтобы мы могли лучше понять. – holaSenor