У меня есть вложенная форма, в которой я хотел бы, чтобы поля формы появлялись только один раз для загрузки нового изображения, а затем отображали существующие изображения без какой-либо возможности CRUD.По сути, на странице редактирования просто дайте возможность добавлять изображения, но не удалять или обновлять.
Отношение - это video
, имеет много video_images
, которые используют скрепку для has_attached_file :image
I 'Сейчас я пытаюсь выполнить следующие действия в моем контроллере:
# GET /videos/new
# GET /videos/new.json
def new
@video = current_user.videos.build
@newthumbnail = @video.video_images.build
respond_to do |format|
format.html # new.html.erb
format.json { render json: @video }
end
end
И это, на мой взгляд:
<%= f.fields_for @newthumbnail do |u| %>
<%= u.label :image, "Upload New Thumbnail" %> <br />
<%= u.file_field :image, :class => "image_uploader" %>
<% end %>
<p>
Or select a previous thumbnail
</p>
<div id="previous_thumbnails">
<!-- These will ultimately be dynamically generated as the existing image associations -->
<div class="previous_thumbnail" rel="1">
<img src="http://placehold.it/120x90" />
</div>
<div class="selected previous_thumbnail" rel="2">
<img src="http://placehold.it/120x90" />
</div>
<div class="previous_thumbnail" rel="3">
<img src="http://placehold.it/120x90" />
</div>
<div class="previous_thumbnail" rel="4">
<img src="http://placehold.it/120x90" />
</div>
</div>
Но я получаю следующую ошибку:
unknown attribute: video_image
Что говорит мне, что где-то есть неправильный перевод единственности против множественности.Я могу понять, почему Rails выделил это, поскольку это, по сути, одна запись.Однако, даже переопределяя имя поля файла и переводя name="video[video_image][image]"
в name="video[video_images][image]"
, я получаю сообщение об ошибке:
VideoImage(#39741260) expected, got Array(#9591480)
При отправке параметров:
"video_images"=>{"image"=>#<ActionDispatch::Http::UploadedFile:0x000000054f1078 @original_filename="Bill OneManBand.jpg",
@content_type="image/jpeg",
@headers="Content-Disposition: form-data; name=\"video[video_images][image]\"; filename=\"Bill OneManBand.jpg\"\r\nContent-Type: image/jpeg\r\n",
@tempfile=#<File:/tmp/RackMultipart20120205-3582-1xp2duq>>},
Так куда я иду не так?Я чувствую, что могу ошибочно подойти к этому ...