2016-04-05 24 views
0

Raylarımda4 carrierwave aracılığıyla yüklenen bir dosyaya sahip AJAX aracılığıyla bir form göndermek istiyorum. Bildiğim kadarıyla remotipart aracılığıyla yapılabilir, ancak bunu nasıl yapabileceğimi anlayamıyorum. Formun altındaki akım kod ilecarrierwave AJAX yüklemesi remotipart ile

günlükleri göre teslim alır (Remotipart ben de uygulamada kullanmak refile gem ile çalışıyor beri. düzgün yüklenmemiş) ve create.js.erb oluşturulur söylüyor, ama kod create.js.erb yılında dosya asla çalışmaz.

Rendered posts/create.js.erb (387.0ms) 

Ne yapmalıyım?

şekilde

<%= form_for @post, remote: true, method: :post, :html => { :multipart => true, class: "post-create-form" } do |f| %> 
    <img id="img_prev" style="margin-bottom:10px;" width=300 height=200 src="#" class="img-thumbnail hidden"/> 
    <%= f.text_area :body, placeholder: "Share something useful..", class: "form-control post-create-body" %> 
    <%= f.button "SHARE", class: "btn btn-primary btn-sm btn-create-post", data: {disable_with: "<i class='fa fa-spinner fa-spin'></i> Saving..."} %> 
    <span class="btn btn-success btn-sm btn-message-file">Upload Image 
    <%= f.file_field :post_image, class: "choose-message-file", id: "avatar-upload" %> 
    </span> 
    <%= f.hidden_field :post_image_cache %> 
<% end %> 

create.js.erb

$('ul.errors').hide(); 
$('.alert-danger').hide(); 
$('.post-index').prepend('<%= j render @post %>'); 
$('.post-create-body').val(''); 
$('.btn-create-post').prop('disabled',true); 

_post.html.erb

<div class="col-md-2"> 
     <%= link_to user_path(post.user) do %> 
     <%= image_tag post.user.avatar.url(:base_thumb), class: 'post-avatar' %> 
     <% end %> 
    </div> 

    <div class="col-md-8"> 
     <div class="post-info"> 
     <%= link_to user_path(post.user) do %> 
      <span class="post-user-name"><%= post.user.full_name %></span> 
     <% end %> 
     <span class="post-updated"><%= local_time_ago(post.updated_at) %></span> 
     </div> 
     <div class="post-body"> 
     <%= simple_format(find_links(h post.body)) %> 
     </div> 
     <div class="post-image" data-postlink="<%= post_path(post) %>"> 
     <% if post.post_image? %> 
      <button data-toggle="modal" data-target="#post-image-modal"> 
      <%= image_tag post.post_image.url(:base_thumb) %> 
      </button> 
     <% end %> 
     </div> 
    </div> 

Update: sorun sonrası nesnesi güncelleme bağlanır. Güncelleştirme formu kodu _post.html.erb'da bulunabilir, bu yüzden <%= j render @post %> neden çalışmadı. Hala sorunun ne olduğunu bilmiyorum.

Peki çalışır: var 1. oluşturma görevini: imaja sahiptir AMA görüntü Çalışmıyor düzenlenmiş değildir hiçbir görüntü 3. güncelleme yayının bulunduğu hiçbir görüntü 2. güncelleme yayının bulunduğu 1. oluşturma görevini

<%= form_for post, method: :patch, remote: true, :html => { :multipart => true } do |f| %> 
    <div class="modal fade updatepost" id="updatepost_<%= post.id %>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
    <div class="modal-dialog" role="document"> 
     <div class="modal-content" style="text-align:left"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
      <h4 class="modal-title" id="edittaskmodalohhhhh">Edit Task</h4> 
     </div> 
     <div class="modal-body"> 
      <div class="alert alert-danger" style="display:none"> 
      <ul class="errors" style="display:none"> 
       <%= render 'layouts/error_messages', object: f.object %> 
      </ul> 
      </div> 
      <div class="field form-group"> 
      <%= f.file_field :post_image, id: "avatar-upload-update" %> 
      <%= f.hidden_field :post_image_cache %> 
      </div> 
      <div class="field form-group"> 
      <%= f.text_area :body, class: "form-control edit-post-body" %> 
      </div> 
     </div> 
     <div class="modal-footer"> 
      <button type="button" class="btn btn-default" data-dismiss="modal" id="updatepostclose">Close</button> 
      <%= f.button "Update post", class: 'btn btn-primary edit-post-submit', data: {disable_with: "<i class='fa fa-spinner fa-spin'></i> Saving..."} %> 
     </div> 
     </div> 
    </div> 
    </div> 
<% end %> 

update.js.erb

$("ul.errors").html(""); 
<% if @post.errors.any? %> 
    $('.alert-danger').show(); 
    $('ul.errors').show(); 
    <% @post.errors.full_messages.each do |message| %> 
    $("ul.errors").append($("<li />").html("<%= message.html_safe %>")); 
    <% end %> 
<% else %> 
    $('ul.errors').hide(); 
    $('.alert-danger').hide(); 
    $('#updatepost_<%= @post.id %>').modal('hide'); 
    $post = $('<%= j render @post %>'); 
    editPostHideDanger($post); 
    $('#post_<%= @post.id %>').remove(); 
    $(".new-post-insert").prepend($post); 
    $("html, body").animate({ scrollTop: 0 }, "slow"); 
<% end %> 
+0

Formunuz şu şekildedir:: html => {: multipart => true} '. Bunu eklemeyi deneyin. '<% = form_for @post, uzak: true, yöntem:: post, sınıf:" post-create-form ",: html => {: multipart => true} do | f | %> ' – dp7

+0

dkp, bu yardımcı olmadı :( –

+0

formu gönderdikten sonra yığın izini gönderebilir misin? – dp7

cevap

0

var ağırlık düzenlenmiş olan resmi olan görüntü 2. güncelleştirme sonrası bootstrap modals ile bazı sorun (hala ne olduğunu bilmiyorum). Modellerin yapısını değiştirdim ve şimdi iyi çalışıyor.