在ActiveAdmin中,默认情况下,action "show"会在单一主键上起作用。如果你的模型使用了复合主键(composite_primary_keys gem),则需要一些额外的配置才能使action "show"正常工作。
以下是解决方法的代码示例:
gem 'composite_primary_keys'
在终端运行bundle install
以安装gem。
在ActiveAdmin资源配置文件中,添加如下代码:
ActiveAdmin.register YourModel do
# 设置composite_primary_keys gem的主键字段
controller do
def find_resource
scoped_collection.where(id: params[:id].split(','))
end
end
# 配置show action的路径和参数
member_action :show, method: :get do
@your_model = YourModel.find(params[:id].split(','))
render 'admin/your_model/show'
end
# 设置自定义视图路径
controller do
def show
render 'admin/your_model/show'
end
end
end
app/views/admin/your_model
目录下创建一个名为show.html.erb
的文件,并在其中编写自定义视图的代码。现在,action "show"应该可以在复合主键上正常工作了。