重复渲染ajax

时间:2016-04-12 09:54:27

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

我有这个简单的create.js.erb文件,它通过ajax提交表单:

Create.js.erb:

$(".answers").append("<%= j render(@answer) %>");
$(".val").val("");
$(".count").text("Answers (<%= Answer.count %>)");

它可以工作,但它会创建一个临时复制(当我刷新页面时它会消失)。

在我的另一个表格上,它按预期工作。相同的代码但不同的类选择器。唯一的区别是我有一个额外的div。

Show.html.haml(发生重复的文件)

    .row.down
        .col-md-9.counter_text
            - if @question.answers.count < 1
                %h4.text-muted No answers yet. Be the first to answer!
        .col-md-9.padDown.answers
            = render :partial => @question.answers
            .hr

答案部分:

= div_for(answer) do
    .media
        - if @question.user.avatar.blank?
            %a{:href => "#", :onclick => "return false;", :class=>"pull-left"}
                %img{:src => "/assets/user.png", :width => "40"}
        - else
            = link_to "/users/"+"#{@question.user.id}", :class => "pull-left" do
                = image_tag answer.avatar, :width => "40"
        .clearfix.visible-sm

        .media-body
            .small
                - if answer.answer_id == current_user.id 
                    %p.pull-right
                        = link_to 'delete', [@question, answer], :method => :delete, :remote => true, :class => "black"
                %h5.media-heading
                    = answer.username
                %small.text-muted.media-heading
                    = time_ago_in_words(answer.created_at)
            %p.hidden-xs.down.black
                = h(answer.body)
            %p.black.down
                = link_to h(answer.demo), "http://"+h(answer.demo)
            .hr

我的另一种形式(有效的形式):

    .row.down
        .col-md-9.test
            = render :partial => @campaign.comments
            .hr

为什么会发生这种情况?

修改

这是一张图片,用于举例说明发生的事情:

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

我得到重复答案的原因是因为父div。我错误地给了父母一个叫answers的班级。重命名它修复了问题。