【发布时间】:2012-06-28 15:05:46
【问题描述】:
我正在尝试创建一个包含重复信息的模型/表格。这样做的原因是为了可以将相同的数据写入不同用户下的表中,并为每个用户找到。但是,我想要一种快速简便的方法来识别哪些信息与其他信息重复。我认为最好的方法是让 item_id 的排序随着表中的每个“集合”条目而增加。有没有办法在不包含另一个存储信息而不将其归属于用户的表的情况下做到这一点?
【问题讨论】:
标签: ruby ruby-on-rails-3 postgresql-9.1
我正在尝试创建一个包含重复信息的模型/表格。这样做的原因是为了可以将相同的数据写入不同用户下的表中,并为每个用户找到。但是,我想要一种快速简便的方法来识别哪些信息与其他信息重复。我认为最好的方法是让 item_id 的排序随着表中的每个“集合”条目而增加。有没有办法在不包含另一个存储信息而不将其归属于用户的表的情况下做到这一点?
【问题讨论】:
标签: ruby ruby-on-rails-3 postgresql-9.1
这就是我设置你的关联的方式:
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
【讨论】:
实际上我正在寻找的是一个 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。
【讨论】: