【发布时间】:2014-11-25 14:54:05
【问题描述】:
我有一个看起来像这样的模型:
class MyModel < ActiveRecord::Base
belongs_to :some_relation1
belongs_to :some_relation2 # Same class as some_relation1
end
在MyModel ActiveAdmin 表单页面中,我想显示两个内部表单:一个用于some_relation1,一个用于some_relation2。
我是这样做的:
f.inputs 'Test 1' do
f.semantic_fields_for(f.object.some_relation1 || f.object.build_some_relation1) do |inner_f|
inner_f.inputs '' do
# Some inputs
end
end
end
f.inputs 'Test 1' do
f.semantic_fields_for(f.object.some_relation2 || f.object.build_some_relation2) do |inner_f|
inner_f.inputs '' do
# Some inputs
end
end
end
我遇到的第一个问题是 ActiveAdmin 似乎是根据底层对象的类生成 HTML 输入类,因此 some_relation1 和 some_relation2 的输入最终会与类发生冲突。
此时我尝试为some_relation2 创建一个特殊的类,它继承了之前的类,以便ActiveAdmin 生成唯一的HTML 类。
这可行,但现在提交表单时出现此错误:
SomeClass2(#70117816523800) expected, got ActionController::Parameters(#70117783961220)
我在这里不知所措。 有谁知道执行此操作的正确方法,或将此功能添加到 ActiveAdmin 的猴子补丁?
【问题讨论】:
标签: ruby-on-rails forms activeadmin nested-forms