【发布时间】:2013-02-03 03:31:44
【问题描述】:
考虑以下
:company has_many :issues #ticket tracking example
我希望有这样的路由,以便公司中的任何用户都可以转到 /issues/:id(使用默认 id 列时这很简单)。
但是,我希望有一个特定于公司的问题 ID(因此每个公司都有自己的问题 1、2、3 等,它们不是唯一的(并且不会使用内部 ID)。
有没有比在 IssueController 中为该公司 ID 创建和更新操作中基于数据库中的最后一个数字计算 ID 更好的方法? (当每个公司更新/创建多个记录时,我可以在这里想到各种竞争条件问题)。
提前致谢!
【问题讨论】:
-
所以你想让
issue有一个由“id”和“company_id”组成的复合主键? -
不确定让这个工作的最佳方法是什么(尽管我当然可以一起破解一些东西) - 即当请求进入 /issues/5701 时,@issue = Issue.where(company_id: current_user .company.id, issue_id: 参数 [:id])。我更关心这是否是开始在数据库中存储这类东西的最佳方式(以及前面提到的为该公司获取下一个可用 issue_id 的数据库查找感觉很糟糕)。
标签: ruby-on-rails ruby database rails-activerecord