使用Active Admin编辑具有复杂主键的模型

时间:2015-09-29 13:19:24

标签: ruby-on-rails activeadmin

我在为一个模型打开AA编辑页面时遇到了麻烦,该模型有很多关联。

我拥有它就像50次选择,立即打开。而这个页面变得非常慢。

阅读此ActiveAdmin: How to handle large associations后,我考虑使用select2而不是通常选择,但事情变得更糟。

这是因为Rails大部分时间都在生成视图,而不是查询数据库。因此,对于花哨的select2,它可以在视图中花费更多时间。

考虑到这些知识,我决定根本不在该页面上选择输入。所以我要编辑" main"该慢速页面上的对象,但与has_and_belongs_to_many对象连接应该单独编辑。

但在做出决定之后,我遇到了一个问题:如何编辑包含复杂主键的表:不只是id,而是:person_id:organization_id

AA默认情况下会生成这样的网址:/admin/person_organizations/:id/edit,但我需要这样的内容:/admin/person_organizations/:person_id/:organization_id/edit

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

默认情况下,ActiveAdmin应该能够处理自定义主键。只需确保将定义添加到模型中,如下所示:

class Person < ActiveRecord::Base
  self.primary_key = 'person_id'
end

答案 1 :(得分:0)

过了一段时间,我确定我甚至不需要在这里拥有多个密钥,因为Rails会为habtm表生成人工id字段。我的目标是编辑此表,我已经完成了标准的方法。