Rails 4 Turbolinks заставляют форму отправляться несколько раз
Я использую некоторый код, хорошо работающий на Rails 3, но не на Rails 4, я думаю, что это вызвано Turbolinks, но я нене могу знать об этом, не могуЧтобы глубже разобраться в моей проблеме, вот код:
Посмотреть:
a/v/m/_new_comment.slim
.new-comment
- if current_user
= render "editor_toolbar"
= form_for(Comment.new, :remote => true, :url => mission_comments_path(@mission)) do |f|
= f.text_area :content, :class => "span10",
:rows => "4", :tabindex => "1"
#preview.hidden
= "Loading..."
= f.submit t("missions.submit_comment"),
"data-disable-with" => t("missions.submitting"),
:class => "btn btn-primary", :tabindex => "2"
- else
= render "need_login_to_comment"
контроллер:
def create
@mission = Mission.find(params[:mission_id])
@comment = @mission.comments.build(comment_params)
@comment.user = current_user
if @comment.save
@mission.events.create(user: current_user, action: "comment")
render layout: false
end
и JS:
$(".new-comment textarea").focus();
$(".comments").append(" @mission.comments.count-1) %>");
$(".new-comment #preview").addClass("hidden").html('');
$(".new-comment textarea").css("display", "block").val('');
$(".editor-toolbar .preview").removeClass("active");
$(".editor-toolbar .edit").addClass("active");
У меня есть два вопроса об этом коде, во-первых: код контроллера, как это нет код js передается клиенту, но не запускается, я должен добавитьrender layout: false
в нижней части этого действия, нет необходимости в Rails 3
Второй вопрос: когда я впервые захожу на эту страницу, перезагружаю страницу, функция комментария работает, но если я нажму на ссылку с других страниц, чтобы перейти на эту страницу, я отправлю эту форму, вызову ajax-запроса несколько раз, будет создано несколько комментариев
спасибо в советах