【问题标题】:js.erb template rendered as textjs.erb 模板呈现为文本
【发布时间】:2016-12-27 17:04:35
【问题描述】:

我正在尝试使我的销毁操作与 ajax 一起使用,因此我在删除图像时不必刷新页面。问题是当我使用 ajax 尝试此操作时,它会删除图像,而是显示此文本:

<%= j render @category.images

...这是我的销毁操作:

def destroy
    @image = @category.images.find(params[:id])
    @image.destroy
  respond_to do |format|
    format.html { redirect_to category_path(@category) }
    format.js
  end
end

destroy.js.erb 文件:

$('#panel_<%= @image.id %>').html("<%= j render @category.images %>");

这里是我的删除链接(我也添加了 remote: true):

<% @category.images.each do |image| %>
  <div class="col-md-6">

    <div class="panel panel-default panel-show" id= "panel_<%= image.id %>">
        <div class="panel-body panel-body-show">
                <%= image_tag(image.photo.url(:thumb), class: "img-in img-responsive") %>
                <%= link_to "delete", category_image_path(@category, image), remote: true, method: :delete, data: {confirm: "Are you sure?"} %>                       <%= link_to "edit", edit_category_image_path(@category, image) %>
                <ul class="imgs-tables">    
                    <li><h2><%= image.i_name %></h2></li>
                    <hr class="for-title">
                    <li class="second-one"><p><%= image.i_bio %></p></li>
                    <% if image.price %>
                        <li class="price-title"><h3> Price: </h3> </li> <li class="price-li"><h4 class="for-price"><%= image.price %><i class="fa fa-ils"></i></h4></li><br/>
                        <hr class="price-line-up">
                        <hr class="price-line-down">
                    <% end %>
                </ul>
            <ul class="sub-images-show">    
                <% image.sub_images.each do |sub_image| %>
                    <li><%= image_tag(sub_image.small_image.url(:small))  %></li>
                <% end %>
            </ul>
        </div>
    </div>
  </div>
<% end %>

她是一张图片,可以显示文本的渲染位置

&lt;blockquote class="imgur-embed-pub" lang="en" data-id="a/G9FVD"&gt;&lt;a href="//imgur.com/G9FVD"&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;script async src="//s.imgur.com/min/embed.js" charset="utf-8"&gt;&lt;/script&gt;

【问题讨论】:

    标签: jquery ruby-on-rails ajax ruby-on-rails-4 destroy


    【解决方案1】:

    试试这个

    destroy.js.erb 文件:

    $('#panel_<%= @image.id %>').remove();
    

    【讨论】:

    • 是的,删除图像但仍然存在问题..所以当我删除左侧图像时,右侧不会转到左侧...如何解决?当我刷新时它会向左移动但是用ajax删除它的鲸鱼目的不是刷新..
    • 可能会改变:&lt;div class="col-md-6" id= "panel_&lt;%= image.id %&gt;"&gt;&lt;div class="panel panel-default panel-show"&gt;。这样删除块。希望对你有帮助
    • 你太棒了......它现在可以按我的意愿工作......非常感谢你......但是为什么这个小小的改变让它工作??
    • 看:每个块都以
      开头。如果你删除它 - 在它的位置将是下一个。但是如果你删除
      - 只删除块内的内容,但它会保留该块
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多