rails Вложенная форма ActiveAdmin has_one accept_attributes_for formtastic issue

Я использую ActiveAdmin и Rails 3.1 - возникла проблема с пониманием того, является ли следующая ошибка ошибкой, или есть какой-то способ сделать это правильно, чего я не понимаю. Я пытаюсь использовать вложенную модель с одним отношением, чтобы я мог создать страницу и заполнить ее метаданные за 1 шаг. - (страница has_one meta_data, accept_nested_attributes_for meta_data)

Пример 1) в этом примере, когда я нажимаю новую страницу, раздел метаданных есть, но нет полей ввода - также, если я редактирую запись, она отображается правильно, однако набор полей дублируется во втором разделе ... и если я удалю 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 %>

Заранее благодарим за любую помощь или разъяснения.

(примечание модераторам, я начал еще одну беседу по этому поводу, но был не так ясен и у меня еще не было обходного решения, которое у меня есть сейчас, поэтому, если один из вопросов должен быть удален, удалите другой)

24
задан thrice801 16 November 2011 в 22:49
поделиться

1 ответ

У меня была та же самая проблема, я работал в твоем хакере и заставил его работать. Затем я переместил <% @page.build_meta_data %> к пользовательскому новому методу, подобному этому

  controller do
    def new
      @tenant = Tenant.new
      @tenant.build_tenant_configurable
    end
  end

, надеюсь, это поможет

1
ответ дан 28 November 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: