通过js.erb渲染部分

时间:2018-04-03 02:16:58

标签: ruby-on-rails

我试图通过jquery渲染表单来添加评论,但我不断收到此错误:

undefined method `render' for #<#<Class:0x007fc8aaa18860>:0x007fc8a0fddfc0>

这是js.erb文件:

$(document).on('turbolinks:load', function(){
  console.log('test');
  $('.reply-comment-form').on('click', function(e) {
    e.preventDefault();
    body = this.id;
    $('.nest-' + body).append( "<%= escape_javascript(render partial: 'comment_reply_form')%>");
  });
});

我尝试了多次不同的代码迭代,但仍然是同样的错误。

当我试着说时,例如:

$('.nest-' + body).append( " This is a test");

它应该这样做。

我在这里检查了其他问题,我看不出有什么不同于我做的事情,我有点卡住了。

以下是我试图呈现的内容:

<div class="body">
  <span class="tip tip-left"></span>
  <div class="message font-medium">
    <%= form_for @message do |form| %>
    <%= form.label :Reply_to_comment %> <br />
    <%= form.text_area :content, :rows => 5, :cols => 80, autofocus: true %> <br />
    <%= form.hidden_field :entry_id, value: params[:entry_id] %>
    <%= form.hidden_field :parent_id, :value => params[:parent_id] %>
    <%= form.submit "Submit"%>
    <% end %>
  </div>
  <div class="flerowspb">
    <span class="font-small">
      </span>
    </span>
  </div>
</div>

由于

3 个答案:

答案 0 :(得分:2)

好的,所以我遇到了答案,我无法从资产文件夹中拨打render

Here is the link

答案 1 :(得分:1)

尝试使用j render:

$('.nest-' + body).append( "<%= j render 'comment_reply_form' %>");

我认为部分视图的路径应该更准确,比如'controller_name / view / partial',或者代码中的任何内容。

答案 2 :(得分:1)

尝试以下

$('.nest-' + body).append( "<%= escape_javascript(render("messages/comment_reply_form"))%>");

$('.nest-' + body).html("<%= escape_javascript(render("messages/comment_reply_form")) %>");