非自动增量rails / postgresql列

时间:2012-06-28 15:05:46

标签: ruby ruby-on-rails-3 postgresql-9.1

我正在尝试在其中包含重复信息的模型/表。这样做的原因是,可以将相同的数据写入不同用户的表中并为每个用户找到。但是,我想要一种快速简便的方法来识别哪些信息与其他信息重复。我认为这样做的最好方法是让一个item_id的类别随着每个“set”条目的增加而增加。有没有办法在不包含另一个存储信息的表的情况下执行此操作而不将其归因于用户?

2 个答案:

答案 0 :(得分: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的id。

您可以通过以下方式检索行:

User.first.records
Record.first.user

答案 1 :(得分: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

就我的目的而言,这种方法效果很好,我可以使用它来获得一个我控制增量的唯一ID。