gpt4 book ai didi

javascript - 为什么我的部分 Rails 渲染不正确?

转载 作者:行者123 更新时间:2023-12-03 08:00:12 24 4
gpt4 key购买 nike

我想添加评论而无需刷新应用程序中的页面。但是,我的部分无法正确加载我正在实现的 JS 功能。

我的日志或控制台中没有收到任何错误,刷新页面后评论就会显示,但如果不刷新则不会发生。

另外,当我编写 JS 将最后一条注释附加到 win_com id 时,代码就可以工作。我希望 HTML 通过 JS 动态显示评论部分的当前状态,而不是仅仅附加最后一条评论。任何帮助,将不胜感激!这是我的代码:

comments_controller.rb:

def create
@window = Window.find(params[:window_id])
@comment = @window.comments.build(comment_params)
@comment.user_id = current_user.id

if @comment.save
respond_to do |format|
format.html { redirect_to post_path(@post) }
format.js
end
end
end

views/windows/show.html.erb:(大 View 的一部分)

<div class="row col-md-7" id="win_com">
<h4>User Comments</h4>
<%= render partial: '/windows/comment', collection: @comments %>
</div>

views/windows/_comment.html.erb:

<div class="container">
<div class="row col-md-7">
<p><%= comment.body %></p>
<p><%= link_to "Delete", [comment.window, comment], method: :delete,
data: {confirm: "Are you sure?"} %></p>
</div>
</div>

views/comments/create.js.erb:

$('#win_com').html("<%= j render(partial:'/windows/comment', collection: @comments)%>");

application.js:

//= require jquery
//= require jquery_ujs
//= require bootstrap-sprockets
//= require turbolinks
//= require_tree .

也许是我的服务器日志中的一些关键行?:

Rendered windows/_comment.html.erb (0.0ms)
Rendered comments/create.js.erb (1.8ms)

最佳答案

您在 Controller 操作创建中缺少 @comments 实例变量。除非您指定,否则 Rails 无法神奇地知道它是什么。您可以将创建操作更改为类似的内容。

def create
@window = Window.find(params[:window_id])
@comment = @window.comments.build(comment_params)
@comment.user_id = current_user.id

if @comment.save
@comments = @post.comments //given that this is defined.
respond_to do |format|
format.html { redirect_to post_path(@post) }
format.js
end
end
end

关于javascript - 为什么我的部分 Rails 渲染不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34621566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com