Rails 3.1 вложенная форма выпуска - PullRequest
0 голосов
/ 01 декабря 2011

У меня есть следующий сценарий:

модель cmsasset, которая является контейнером для изображения с использованием скрепки для загрузки и хранения, модель местоположения, которая может иметь прикрепленные cmsassets в подходе таблицы соединений habtm

location принимает вложенные атрибуты для cmsassets. Вот точный код модели:

accepts_nested_attributes_for :cmsassets, :allow_destroy => true

теперь, когда я пытаюсь использовать следующее в моем коде формы, вложенная форма не отображается:

<%= form_for @location do |f| %>
 <%= render 'shared/error_messages', :target => @location %>
<p>Name<br />
<%= f.text_field :name %></p>
<p>Description<br />
<%= f.text_area :description %></p>
<p>Location Tags (Separated by a Comma)<br />
<%= f.text_field :tag_names %></p>
<%= render :partial => 'shared/contact_info_form', :locals => {:f => f} %>
<p>Splash Image:<br />
  <%= f.fields_for :cmsassets do |cmsasset_form| %>
  <%= cmsasset_form.number_field :client_id, :type => 'hidden', :value =>  session[:current_client] %>
  <p>Image Name:<br />
   <%= cmsasset_form.text_field :name %></p>
   <p>Description:<br />
   <%= cmsasset_form.text_field :description %></p>
   <p><%= cmsasset_form.file_field :attachment %><br />
   <%= cmsasset_form.text_field :cms_asset_type, :type => 'hidden', :value => 'Splash'  %></p>
  <% end %></p>
<p>Display Address:<br />
 <%= f.text_field :display_addr %></p>
 <p>Latitude<br />
  <%= f.number_field :latitude %></p>
 <p>Longitude<br />
  <%= f.number_field :longitude %></p>
 <p>Trigger Radius<br />
  <%= f.number_field :trigger_radius%></p>
  <p>Published >> <%= f.check_box :published %></p>
 <p>Expiration Date<br />
 <%= f.text_field :expiration_date %></p>
 <br />
 <%= f.submit "Save" %>

Однако, когда я делаю cmsassets единичными в вызове вложенной формы, он рендерится, но не работает, очевидно, из-за структуры данных habtm ...

Что сумасшедшего, так это то, что этот подход работает с использованием гема nested_form, за единственным исключением скрепки, которая в этом случае вызывает сбой, потому что мы используем динамические стили на уровне модели.

если кто-нибудь сможет пролить свет на любой из этих вопросов, мне было бы очень интересно услышать некоторые идеи!

1 Ответ

0 голосов
/ 01 декабря 2011

Это недопустимый HTML для записи вложенных форм.

Попробуйте разместить форму загрузки вне основной формы.

...