Rails Ajax表单没有显示(使用remote:true)

时间:2015-03-22 20:23:08

标签: jquery ruby-on-rails ruby ajax

嗨大家我试图使用ajax remote true渲染部分。

在我的“新拍卖”链接中,我有远程真插入。 我还创建了一个单独的'new.js.erb'文件。点击“新拍卖”链接后,我的Chrome控制台会显示状态200 OK。此外,当我单击响应时,我可以看到正在读取'new.js.erb'文件enter image description here。然而,我希望显示dosnt的形式出现!

它给了我任何错误,所以我不知道该怎么做或如何继续?!

以下是我的new.js.erb文件中的代码:

$('#current_auctions').prepend("<%= j render partial: 'form' %>");
}

以下是我的实际表单的代码(_form.html.erb):

<div class="form-group" id="new_auction">
        <%=form_for @auction do |a|%>
        <%=a.label :titlee%>
        <%=a.text_field  :title, class:"form-control"%>
        <%=a.label :detailss%>
        <%=a.text_area :details,class:"form-control"%><br>
        <%=a.label :endz_onn%>
        <%=a.date_field :ends_on, class:"form-control"%><br>
        <%=a.label :reserve_pricee%>
        <%=a.number_field :reserve_price, class:"form-control"%><br>
        <%=a.submit "Create", class: "btn btn-default"%>
        <%end%>
        </div>

以下是我的索引页面的代码(index.html.erb - 这是我想要在上面添加新表单的地方)

<div id="current_auctions">
<h3 class="heading"> Current Auctions </h3><hr>

<%@auctions.each do |auction| %>
  <strong><%=link_to auction.title, auction%><br></strong>
  <%=auction.details%><br><br>
  Ends on:<%=auction.ends_on%><br>
  Reserve Price:$<%=auction.reserve_price%><br>
  <hr>
<%end%> 
</div>

我的link_to看起来像这样:

<%=link_to "New Auction", new_auction_path, remote: true%><br>

我的路线如下:enter image description here

如果我预先添加常规文本,enter image description here它会显示出来,所以我知道它渲染部分的方式存在问题,但看起来对我来说是正确的,我想理解为什么它不起作用

我正在使用Ruby on Rails,Sublime Text 2,postgresql

2 个答案:

答案 0 :(得分:1)

我会为表单

创建一个单独的<div> index.html.erb中的

<div id="current_auctions">
  <div id="insert_form"> </div>
  <h3 class="heading"> Current Auctions </h3><hr>

  <%@auctions.each do |auction| %>
    <strong><%=link_to auction.title, auction%><br></strong>
    <%=auction.details%><br><br>

然后在你的部分中使用它:

$('#insert_form').html("<%= j render partial: 'form' %>");

答案 1 :(得分:0)

我会将id直接添加到index.html.erb

中的链接
<%=link_to "New Auction", new_auction_path, id: 'new_auction_link' remote: true%><br>

而不是new.js.erb

$('#new_auction_link').after('<%= j render 'form' %>');