Я пытаюсь использовать JavaScript с jquery в rails для обновления div без перезагрузки страницы. Его работа, но комментарий создается дважды. Я знаю, что что-то не так в частичной части, но не могло понять. Любая помощь?Почему ссылка link_to отправляется дважды?
Следующие файлы -
_new_comment.html.erb
<%= form_for [:home, Comment.new], :url => home_comments_path, :html => {:id => "comment-new-" + post.id.to_s} do |f| %>
<div>
<%= f.text_area :message, :class => "message-area-" + post.id.to_s, :placeholder => "Add comment..." %>
<%= f.hidden_field :post_id, :value => post.id %>
<span class="new-comment"><%= link_to 'Add', '#', remote: true, :onclick => "$('#comment-new-#{post.id}').submit()" %></span>
</div>
<% end %>
comments_controller.rb
def create
@comment = Comment.new(comment_params)
@comment.user_id = current_user.id
if @comment.save
flash[:notice] = 'Comment added sucessfully'
respond_to do |format|
format.html { redirect_to home_posts_url }
format.js
end
end
end
create.js.erb
$("#comment-new-83").before('<div class="notice"><%= escape_javascript(flash[:notice]) %></div>');
$("#comment-new-83")[0].reset();
домой. js
jQuery.ajaxSetup({
'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
})
$(document).ready(function() {
$("#comment-new-83").submit(function() {
$.post($(this).attr("action"), $(this).serialize(), null, "script");
return false;
})
})
Удалить 'Пульт дистанционного управления: true' от' link_to' и попытаться также ': onclick'. –
где я буду использовать onclick? – Beginner1111
Вам не нужно помещать ': onclick' в любом месте, потому что вы уже привязываете событие' submit' к форме. –