Как использовать гем nested_form с другим частичным для новых и существующих вложенных объектов модели? - PullRequest
0 голосов
/ 09 октября 2011

Я использую камень nested_form, но столкнулся с одним вариантом использования, который доставляет мне некоторые проблемы. У меня есть одна конкретная вложенная форма, где частичное для существующих вложенных объектов отличается от того, которое необходимо при добавлении нового объекта. (Конкретный вариант использования - изображения - существующие загруженные изображения отображают тег изображения, новые объекты изображений должны отображать поле file_ для загрузки.)

Одна вещь, которую я пробовал, это проверить в частичном для f.object.nil? определить, что нужно визуализировать, но как новые, так и существующие объекты по-прежнему дают частичный код существующего объекта. Я предполагаю, что это как-то связано с тем, как nested_form BuilderMixin вызывает fields_for?

Есть ли простой способ сделать это, что мне не хватает? Или мне нужно взглянуть на изменение кода nested_form link_to_add, чтобы приспособиться к этому?

Для справки, здесь была моя попытка использовать один частичный:

<tr>
    <% if !f.object.nil? %>
        <td>
            <a href="/customer_images/<%= f.object.id %>" target="_new">
                <%= image_tag f.object.picture.url -%>
            </a>
        </td>
        <td>
            Description: <%= f.object.image_description %><br/>
            Date Uploaded: <%= (f.object.nil? || f.object.created_at.nil?) ? "Not yet uploaded." : f.object.created_at.strftime("%A %h %d, %Y %I:%M %p") %>
            <br>
            <%= f.link_to_remove "Remove this image" %>
        </td>
    <% else %>
        <td>&nbsp;</td>
        <td>
            <%= label :image, :file, "Select File:" %><%= f.file_field :picture %><br />
            Description: <%= f.text_field :image_description %><br />
        </td>   
    <% end %>
</tr>

1 Ответ

6 голосов
/ 09 октября 2011

Никакой объект не может быть nil там. Вы должны проверить, существует ли объект в базе данных, вызывая метод new_record?.

См. Документ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...