我在我的应用程序中使用 'foriegner' gem 来设置主键,现在我的情况是
在表中设置复合主键。
我在网上搜索了这个,但无法找到明确的解决方案。
请建议我是否可以使用外国人 gem 或任何其他方式在 rails 应用程序中设置复合键。
注意:我正在使用 Postgres
谢谢。
最佳答案
事件记录
有一种 gem 叫 composite_primary_keys
并且整合这些功能对于ActiveRecord 来说相当会。
它支持 wide array of ActiveRecord versions .
# Gemfile
gem 'composite_primary_keys', '=<version for your AR version>'
像下面的例子一样使用它:
class Membership < ActiveRecord::Base
self.primary_keys = :user_id, :group_id
end
membership = Membership.find([1,1]) # composite ids returns single instance
# => <Membership:0x39218b0 @attributes={"user_id"=>"1", "group_id"=>"1"}>
我很高兴在生产中使用它,保持我的架构干净整洁。
更好的选择:续集
与往常一样,如果您正在寻找出色的 Ruby + PostgreSQL 解决方案,请查看
jeremyevans/sequel
.它具有大量功能,包括 复合主键 .盒子外面。
因此,如果您正在开始一个新项目(显然是在 PostgreSQL 上),请避免 ActiveRecord 的头痛并使用 Sequel。
class Post < Sequel::Model
set_primary_key [:category, :title]
end
关于ruby-on-rails - 如何在 Rails 应用程序中设置复合键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11114627/