使用ajax渲染表单时传入id

时间:2015-05-07 02:15:57

标签: ruby-on-rails

当用户点击此按钮时,我正在使用ajax将表单部分呈现为#image_form:

<%= link_to image_form_path, :remote => true do %>
  <div class="button">Add Image</div>
<% end %>

 <div id="image_form">
 </div>

image_form partial:

<%= simple_form_for [@post, Comment.new] %>

控制器:

def show
  @post = Post.find(params[:id])    
end

和image_form.js.erb看起来像这样:

 $("#image_form").html("<%= j render :partial=>'comments/image_form' %>");

我有两个模型:帖子和评论(评论属于帖子)。如果我正常呈现表单<%= render 'comments/image_form' %>,则发布作品。当我使用ajax渲染时,post id(也可能是注释id)不会传递给我这个url和'no routes'错误。

localhost:3000/posts//comment

使用没有传入id的ajax渲染它有什么不同?

1 个答案:

答案 0 :(得分:1)

您可以将部分更改为

<%= simple_form_for [post, Comment.new] %>

并将image_form.js.erb更改为

$("#image_form").html("<%= j render(partial: 'comments/image_form', locals: {post: @post}) %>");

部分无法直接访问@post变量。