【发布时间】:2014-03-19 03:27:35
【问题描述】:
我有几个具有belongs_to 关系的模型。模型都有自定义 to_param 方法设置为使用资源键而不是实际 id
def to_param
return self.resource_key
end
对于我的管理模型,我有:
ActiveAdmin.register Foo do
controller do
def find_resource
Foo.find_by(resource_key: params[:id])
end
end
panel "Bars" do
table_for foo.bars do
column "Title" do |bar|
link_to bar.title, admin_foo_bar_path(foo, bar)
end
end
end
end
ActiveAdmin.register Bar do
belongs_to :foo
controller do
def find_resource
Bar.find_by(resource_key: params[:id])
end
end
end
Foo 工作正常,所有链接都是使用 URL 路径中的 resource_key 生成的。也为 Bar 正确生成了 URL,但是当我尝试打开 Bar 项目时,我收到如下消息: 找不到 id={resource_id}
的 Foo实际上,我的 Bar 视图中根本不需要 Foo 值,Bar 资源键足以查询数据。我要么需要告诉应用不要尝试查找 Foo 值,要么将 Bar 设置为通过 resource_key 而不是 id 正确查询 Foo。
我正在使用带有 AA 1.0 主分支的 Rails 4。
【问题讨论】:
-
您的路线是如何定义的?你能分享他们的问题吗?
-
对于AA,我只是使用默认的
ActiveAdmin.routes(self)
标签: ruby-on-rails ruby-on-rails-4 activeadmin