当用户点击此按钮时,我正在使用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渲染它有什么不同?
答案 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
变量。