我一直试图让this tutorial使用我的rails 5项目,但显然自从rails 4以来javascript中有一些变化,这会导致回复字段在点击“回复”时立即关闭。它应该保持打开状态,直到您输入消息并单击旁边的“发表评论”按钮。
从6天前有一条评论建议使用rails 5的js代码,但它对我不起作用。 (我是否必须用锚点改变一些东西并提及他的范围?)
我完全按照指南,甚至做了一个全新的项目,但仍然没有运气。
需要对javascript代码进行哪些更改才能使其与rails 5兼容?
答案 0 :(得分:0)
我遇到了同样的问题,我找到了一个适合我的解决方案。我不确定是否有任何隐藏的含义,但到目前为止我还没有发现任何问题。我所做的只是在" comment-nav"中使用html链接。 div类并将其转换为"#"进入"。"。然后我将javascript修改为"返回false;"。我按照相同的教程。我正在使用Rails 5.我知道这个答案很晚,但想回答任何未来有这个问题的人。
这是我的HTML:
<% comments.each do |comment| %>
<div class="comments-show">
<div class="comment">
<p><%= comment.body %><br></p>
<div class="comment-nav"><a href="." class="comment-reply">Reply</a></div>
<div class="reply-form">
<%= form_for @new_comment do |f| %>
<%= f.hidden_field :commentable_id, value: @new_comment.commentable_id %>
<%= f.hidden_field :commentable_type, value: @new_comment.commentable_type %>
<%= f.hidden_field :comment_id, value: comment.id %>
<div class="field form-group">
<%= f.text_area :body, class: 'form-control' %>
</div>
<div class="field form-group">
<%= submit_tag "Post Reply", class: 'btn btn-primary' %>
</div>
<% end %>
</div>
</div>
<%= render partial: "comments/reply", locals: {comments: comment.children} %>
</div>
<% end %>
&#13;
这是我的javascript:
$ ->
$('.comment-reply').click ->
$(this).closest('.comment').find('.reply-form').toggle()
return false;
&#13;