我正在使用ActiveAdmin和Rails 3.1--我遇到了一个问题,无法确定以下是一个bug还是有一种正确的方法可以实现,我可能没有理解。我试图使用具有has_one关系的嵌套模型,这样我就可以在一个步骤中创建页面并填写其元数据。(page has_one meta_data, accepts_nested_attributes_for meta_data)
例子1) 在这个例子中,当我点击新页面时,元数据部分是存在的,但没有输入字段--而且,如果我编辑记录,它会正确显示,但fieldset会在第二个部分中重复出现...如果我删除f.inputs包装semantic_field_for(这是有意义的),那么它将完全破坏,并且在元数据区域中不显示任何内容...
form do |f|
f.inputs "Page Information" do
f.input :name
f.input :uri
f.input :view
f.input :body, :as => :text
f.input :active
end
f.inputs "Meta Data" do
f.semantic_fields_for :meta_data do |meta_form|
meta_form.inputs :title, :description, :keywords, :name => "Meta Information"
end
end
end
我理解元数据可能没有被实例化,但我不确定我应该如何在表单块中实例化它?(或者是否可以这样做)- 我唯一能够使其工作的方法是使用自定义表单,并在视图中构建元数据,代码看起来像这样:
2)我的解决方法,但似乎很麻烦
<%= semantic_form_for [:admin, @page] do |f| %>
<% @page.build_meta_data %>
<%= f.inputs :name => "Page Information" do %>
<%= f.input :name %>
<%= f.input :uri %>
<%= f.input :view %>
<%= f.input :body, :as => :text %>
<%= f.input :active %>
<% end %>
<%= f.semantic_fields_for :meta_data do |meta_form| %>
<%= meta_form.inputs :title, :description, :keywords, :name => "Meta Information" %>
<% end %>
<%= f.buttons %>
<% end %>
提前感谢任何帮助或澄清。
(注意:我之前在另一个主题上发过帖子,但不够清晰,并且没有现在这样的解决方案。因此,如果其中一个问题应该被删除,请删除另一个问题。)
<li>
中没有嵌套隐藏值的 HTML。Formtastic 2.2.1。 - Trip= f.inputs "Registered Course", :for => [:registered_courses, f.object.new_record? ? RegisteredCourse.new : f.object.registered_courses] do |registered_course_form| = registered_course_form.input :enterprise_registration_id, input_html: { value: registration.id }, as: :hidden
我需要使用new_record?因为它是HABTM,因此空数组仍然是一个值。 - Trip