我在为一个模型打开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
有什么想法吗?
答案 0 :(得分:0)
默认情况下,ActiveAdmin应该能够处理自定义主键。只需确保将定义添加到模型中,如下所示:
class Person < ActiveRecord::Base
self.primary_key = 'person_id'
end
答案 1 :(得分:0)
过了一段时间,我确定我甚至不需要在这里拥有多个密钥,因为Rails会为habtm表生成人工id
字段。我的目标是编辑此表,我已经完成了标准的方法。